Enter bij formulier

Status
Niet open voor verdere reacties.

grote frits

Gebruiker
Lid geworden
31 jul 2007
Berichten
86
Voor mijn website heb ik een formuliertje met 1 regel. Hier moet iets ingevult worden en vervolgens wordt er op genereer geklikt. Alles werkt.
Alleen, als er getypt wordt in het tekstveld en er wordt op enter gedrukt, 'klikt' hij niet automatisch op de button. Je moet dus echt handmatig klikken. Hoe zorg ervoor ik dat hij bij een druk op 'enter' automatisch op 'genereer' klikt en het formulier dus verzendt?

Ik heb nu dit:
PHP:
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; 
    echo "<form method=\"POST\" ACTION=\"http://slogan.online-verdiensten.nl/Generator.php\">"; 
      
    echo "<tr><td>Naam:</td></tr>"; 
    echo "<tr><td><input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>    
    <tr><td><input type=\"submit\" name=\"submit\" value=\"Genereer!\"></td></tr>"; 
      
    echo "</form>"; 
    echo "</table>";
 
Laatst bewerkt:
Gelukt.. Vanaf de post druk bezig geweest en het werkt.

Het zat 'm niet in het stukje wat ik in de vorige post plaatste, het zat hem in de controle of alles was ingevult of niet.

Geen hulp meer nodig dus..:thumb:
 
Even twee opmerkingen:

In principe kun je meestal het best enkele quotes gebruiken ( ' ) in plaats van dubbele ( " ). Een uitzondering zijn query's, daar moet je wel dubbele quotes gebruiken.
Voordeel is dat je dan niet alle "'s in HTML hoeft te escapen zoals je nu doet.

Daarnaast kun je in dit geval beter alle HTML onder elkaar zetten, of PHP helemaal uit zetten.
 
Ok bedankt, zal ik bij volgende scripts in mijn achterhoofd houden.

Toch heb ik voor dit script nog een vraagje.. Hier het hele script wat ik gebruik:
PHP:
if (!$_POST['submit'] && !$_POST['naam'] || $_POST['submit'] && !$_POST['naam']) 
{ 
	if ($_POST['submit'] && !$_POST['naam'])
		{ echo "Vul wat in.</br></br>"; }
      
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> "; 
    echo "<form method=\"POST\" ACTION=\"http://slogan.online-verdiensten.nl/Generator.php\">"; 
      
    echo "<tr><td>Naam:</td></tr>"; 
    echo "<tr><td><input type=\"text\" style='width:500px;' name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
	echo "<tr><td></br></td></tr>";

	
	echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Genereer\"></td></tr>"; 
      
    echo "</form>"; 
    echo "</table>"; 
	
	
} 
else 
{      

$tekst_array = array("". $_POST['naam'] .", ik kan niet meer zonder", "Geweldig, " . $_POST['naam'] ."", "***zooi, " . $_POST['naam'] .", maar wel cool");  
$num_items = count($tekst_array)-1;  
$random = rand(0, $num_items);  

echo $tekst_array[$random]; 
echo "</br></br></br><a href=\"http://slogan.online-verdiensten.nl/Generator.php\">Nog een keer.</a>";    
    
} 
?>

Als er op 'Genereer' wordt geklikt terwijl er niks is ingevult krijg je een foutmelding dat er wat ingevult moet worden en verschijnt er opnieuw het formulier. Dit is precies wat ik wilde.
Alleen, als je op Enter drukt terwijl je niks in hebt gevult krijg je deze foutmelding niet. Je krijgt wel opnieuw het formulier te zien en als je wel wat invult en je druk op enter, werkt hij ook prima.

Ik heb al iets geprobeert zoals dit:
PHP:
	if ($_POST['naam'] && $_POST['naam'] == "")
of
PHP:
 if ($_POST['naam'] && !$_POST['naam'])
maar dit werkt allemaal niet. Is er een methode dat dit wel werkt? Er wordt natuurlijk vaak op Enter gedrukt tijdens het invullen waardoor het veel beter zou zijn als je ook hier een foutmelding krijgt bij een leeg formulier.
 
Laatst bewerkt:
Controleren of een formulier verzonden is:

PHP:
if($_SERVER['REQUEST_METHOD'] != 'POST'){

  // Niet verzonden, formulier weergeven.

}else{

  // Wel verzonden.

}

En als je wilt kijken of variabelen leeg zijn of niet:

PHP:
if(empty($_POST['var']) || empty($_POST['var2'])){

   echo 'Var 1 en var 2 zijn leeg.';

}else{

  echo 'Gelukt!';

}

Of voor een gebruiksvriendelijkere manier van presenteren naar de gebruiker:

PHP:
$error = '';

if(empty($_POST['naam'])){

 $error .= 'Naam niet ingevuld.<br />';

}else if(empty($_POST['plaats'])){

 $error .= 'Plaats is niet ingevuld.<br />';

}


if(empty($error)){

  echo 'Alles is gelukt!';

}else{

  echo 'De volgende fouten zijn geconstateerd:<br />'.$error;

}
 
Ok bedankt, ik heb er veel van kunnen gebruiken..

Alles werkt nu zoals het zou moeten..
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan