» »

univerzalni kontaktni obrazec

univerzalni kontaktni obrazec

cobrica ::

Izdelujem nek univerzalni kontaktni obrazec, katerega bo neko podjetje uporabljalo po svoji želji, in sicer da pokliče funkcijo form_input(...) in izdela en input itd. pojavi se problem pri preverjanju vnosa. Ker nevem kako bi lahko znotraj same funkcije kjer izdelam obrazec preverjal ali je obvezen ali ne sem ustvaril spremenljivko z polji $obvezno_polje, kjer definiram samo polja, ki so obvezna, katera kasneje ob postu samo obarva z rdečo barvo, da ne kompliciram še z tekstom ala izpolni naslov... itd. vendar nimam ideje kako bi ta polja preverjal, sicer pa če ve kdo kako preverit vnos v input znotraj funkcije kjer kličem tudi prav. Vglavnem koda je sledeča:
<style>
.obarvaj {
	color: red;
}
</style>
<?php
// tu definiramo osnovne nastavitve forme
$obvezna_polja = array('ime',''); // katera polja je potrebno izpolnit
	foreach( $obvezna_polja as $obvezno ){
				$obvezno_polje = $obvezno ;
				
			}
				echo $obvezno_polje;
$ime_podjetja = '';
$domena = '';
$email_naslov = '';

if(isset($_POST['Potrdi'])) {
	foreach($_POST as $k=>$val) { 
		if($k == 'Potrdi') { continue; }// submit gumb preskoči, da ga ne bo izpisovalo
		
		if($_POST[$k] == ''){ // pridobim ime postanega inputa, kako sedaj preverit samo po določenih inputih če so prazni, ki so definirani v $obvezno_polje?
			$izpis .= 'Izpolni ' . $k . '<br>'; 
			$poslji = FALSE;
		} else {
			$izpis .= $_POST[$k] .'<br>';
			$poslji = TRUE;
			//$izpis = 'ok';
		}		
	}
	if(isset($poslji)) {
	echo $izpis; 
	
	}
}

	
function form($ime,$akcija){
	return '<form name="'.$ime.'" method="post" action="'.$akcija.'">';
}

function form_input($ime ='',$tip ='',$obvezen = '',$value =''){
	if($obvezen == 'obvezen'){ echo "*"; }
	if($tip == 'textarea'){
		echo $ime.'<textarea name="'.$ime.'">'.$value.'</textarea><br/>';
	} else {
			$ime_inputa = ($tip == 'submit') ? '' : $ime_inputa= $ime; // definiram prazno spremenljivko, da ne poimenujem submit gumba
		echo $ime_inputa . '<input type="'.$tip.'" value="'.$value.'" name="'.$ime.'"><br/>';
	}
}

// tu si gradim formo po svoje
echo form('forma','');
echo form_input('Ime','text','obvezen');
echo form_input('Podjetje','text','obvezen');
echo form_input('Email','text','');
echo form_input('Vsebina','textarea','');
echo form_input('Potrdi','submit','','Poslji');
echo "</form>";

?>


cobrica ::

Malce sem popravil kodo, torej z obvezno_polje definiram v polju vse obvezne inpute katere je potrebno izpolniti:
$obvezna_polja = array('Ime','Priimek','Vsebina'); 
	foreach($_POST as $ime=>$vrednost) {
		if($ime == 'Potrdi') { continue; }
		$ime_post .= $ime;
		$vrednost_post .= $vrednost;
	}	
		
	$prestej_obvezna_polja = count($obvezna_polja);
	for ($i = 0; $i < $prestej_obvezna_polja; $i++) {
	$polje .= $obvezna_polja[$i];
	
		if($obvezna_polja[$i] == $ime_post){ // zakaj to primerjanje ne deluje? $ime_post dobim ImePriimekEmail, sepravi inpute, ki jih imam ustvarjene...
			if($_POST[$ime_post] == ''){
				echo "obvezno polje";
			} else {
				// ni obvezno nadaljuje naprej..
			}
		}
	}

Torej potrebujem primerjavo, če je obvezno polje enako imenu posta, če to ustreza preveri če je ime posta prazen in izpiše error, to je vse kar bi rad dosegel.

MisterR ::

Zato, ker imaš v 4. vrstici $ime_post .= $ime; Naredi $ime_post = $ime;

Drugače pa HTML5 že sam po sebi nudi validacijo vnosnih podatkov.

cobrica ::

RockyS če bi tako naredil mi iz polja potem izpiše samo zadnji podatek, kar je neuporabno, sem rešil na drugačen način. Kar se pa tiče html5 validacije kaj koristi, če IE še vedno ne podpira tega?

MisterR ::

Koristi ti to, da že vnaprej razmišljaš. IE6,7,8 tega nebodo nikdar podpirali. In to pomeni, da boš ti zmeraj uporabljal zastarele metode.

In ne razumem čisto, kaj misliš z "izpiše samo zadnji podatek"? Vsako polje ime svoj name, in vsako polje preletiš. Če že uporabljaš polje za take podatke bi naredil polje $podatki = array("ime"=>$input_ime, "priimek"=>$input_priimek) ne pa da mučkaš s sestavljanjem stringov.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

if(empty($_POST["vsa-polja"]))?

Oddelek: Izdelava spletišč
212621 (2236) Housy
»

Kako preveriti ali so vnosna polja izpolnjena?

Oddelek: Izdelava spletišč
112002 (1656) bluefish
»

PHP - nujno! - email forma

Oddelek: Izdelava spletišč
262043 (1725) DonMatejo
»

HTML forma in datum

Oddelek: Izdelava spletišč
131806 (1542) Muzo
»

obrazec za pošiljanje pošte

Oddelek: Izdelava spletišč
71262 (1161) tec

Več podobnih tem