le 17/07/2008 à 19:11
N@b
Bonjour ...
j'ai récupéré un code AJAX pour l'installer dans l'une de mes pages Web pour un éventuel moteur de recherche.
Bien sure, comme c'est de l'ajax le formulaire est vaidé sans chargement de page de résultat , hors le bouton "Valider" pour lancer la recherche reste toujours actif pendant la phase de recherche et donc pour éviter k'il soit recliké et pour avertir le visiteur ke la phase recherche est en cours je souhaiterai le désactiver mais voilà , comme c'est de l'ajax j'ai pas réussis ...
Merci de m'indiker comment et où ajouter d code JS pour permettre a remplacer le texte du bouton "Envoyer" par "Recherche en cours ..." après avoir cliké dessus.
Voici le code a complet ( simple ) des deux pages :
PAGE : index.html
PAGE : code.js
PAGE : maPageRequPHP.php
Merci encore pour votre aide ...
Cordialement
j'ai récupéré un code AJAX pour l'installer dans l'une de mes pages Web pour un éventuel moteur de recherche.
Bien sure, comme c'est de l'ajax le formulaire est vaidé sans chargement de page de résultat , hors le bouton "Valider" pour lancer la recherche reste toujours actif pendant la phase de recherche et donc pour éviter k'il soit recliké et pour avertir le visiteur ke la phase recherche est en cours je souhaiterai le désactiver mais voilà , comme c'est de l'ajax j'ai pas réussis ...
Merci de m'indiker comment et où ajouter d code JS pour permettre a remplacer le texte du bouton "Envoyer" par "Recherche en cours ..." après avoir cliké dessus.
Voici le code a complet ( simple ) des deux pages :
PAGE : index.html
<script type="text/javascript" src="code.js"></script>
<form method="post" onsubmit="maFonctionAjax(this.Id.value,this.Nom.value);return false" action="">
<table border="0" cellspacing="0">
<tr>
<td colspan=2>
Formulaire Ajax
</td>
</tr>
<tr>
<td>Id:</td>
<td>
<input name="Id" id="Id" type="text"></td>
</tr>
<tr>
<td>Nom:</td>
<td><input name="Nom" id="Nom" type="text"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="envoyer" /></td>
</tr>
</table>
</form>
<div id="msg"></div>
PAGE : code.js
function maFonctionAjax(Id, Nom)
{
var OAjax;
if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
OAjax.open('POST',"maPageDeRequPHP.php",true);
OAjax.onreadystatechange = function()
{
if (OAjax.readyState == 4 && OAjax.status==200)
{
if (document.getElementById)
{
if (OAjax.responseText =='true') { /* OK */
document.getElementById('msg').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
}else{ /* PAS OK */
document.getElementById('msg').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
}
}
}
}
OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
OAjax.send('Id='+Id+'&Nom='+Nom);
}
PAGE : maPageRequPHP.php
<?
session_start();
$erreurs=array();//tableau qui stocke les erreurs.
if(!$_POST['Id']){
$erreurs[]='Id: Veuillez encoder un Id';
}
if(!$_POST['Nom']){
$erreurs[]='Nom: Veuillez encoder un Nom';
}
if(count($erreurs)==0)
{
//ici tu enregistres les valeurs dans la bdd
echo "true";//cette valeur sera traité par ajax est vaut dire que tt passe pour le bien
// connexion la base de donnée
$nom=$_POST["Nom"];
echo $nom;
$search = mysql_query("SELECT * FROM chansons WHERE artiste LIKE '%$nom%'");
$nb = mysql_num_rows($search);
echo "$nb<br><br>";
while ($s=mysql_fetch_array($search)) {
$titre_song = $s["titre_song"];
echo "$titre_song<br>";
}
// cette boucle est ajouté pour vérifier le fonctionnement du bouton "Envoyer" du formulaire
for ($i=0;$i<=10000;$i++)
{
echo "$i<br>";
}
}
else
{
echo "<p class='erreur'>";
for($i=0;$i<count($erreurs);$i++)
{
echo "- ".$erreurs[$i].".<br />";
}
echo "</p>";
}
?>
Merci encore pour votre aide ...
Cordialement