2013-04-28 1 views
0

J'ai un formulaire dans 'index.php' dans lequel je vais valider des champs de texte en utilisant 'submit.php', si tout est ok il devrait insérer les champs dans ma base de données en utilisant 'submit.php '. Maintenant, si « submit.php » détecte une erreur, il doit faire écho aux erreurs que je stockées dans un tableau sous ma forme à « index.php »:PHP: Echo Validation Message

INDEX.php:

<form action="submit.php" method="POST"> 
<input type="text" name="email" /> 
<input type="text" name="url" /> 
<input type="submit" name="Submit" value="Continue"/> 
</form> 
<div class="errorsgohere"><?php //WHAT TO ADD HERE? ?></div> 

SUBMIT.php:

if(isset($_POST['Submit'])) { 
    //I validate everything... etc.. 
    if(!empty($errors)) { 
    echo "<div class='errors'>"; 
    foreach($errors as $error) { 
     echo $error; 
    } 
    echo "</div>"; 
    } else { SubmitDatabase(); //If there are no errors it will proceed } 
} 

Comment puis-je faire écho ce que j'ai erreur de $, mais à l'intérieur de mon INDEX.php et si possible sans rafraîchir la page entière? Merci d'avance!

+0

Vous pouvez Ne montrez pas l'erreur sur la page précédente mais vous pouvez faire 'submit.php' ressembler à' index.php' mais avec des erreurs ou juste valider sur la même page avec '$ _SERVER ['PHP_SELF']'. Sans actualiser, vous avez besoin d'AJAX. – elclanrs

Répondre

0

vous pouvez utiliser AJAX pour envoyer des valeurs et quelles que soient vos éléments par jour le résultat:

... sur HTML

<form id="formid" action="submit.php" method="POST"> 

... javascript

... 
$("#formid").submit(function() { 
    var r = $.ajax({url:"submit.php",type:"POST",async:false,data:$("#formid").serialize()}); 
    var result = JSON.parse(r.responseText); 
    // result["error"] should have the 1 you set in PHP 
    // now update your elements 
}); 

. ..on PHP (à la fin)

... 
// process your $_POST values you sent via AJAX and decide the result 
... 
echo json_encode(array("error"=>1, ...));