[PHP/AJAX] Afficher message PHP avec AJAX

Résolu/Fermé
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 - Modifié par patrice86 le 13/11/2011 à 16:56
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 - 13 nov. 2011 à 17:42
Bonjour,

Je disposes d'un formulaire tout simple:
 <form method="GET" name="formulaire">   
  <table border="5">    
 <tr></tr>    
 <tr>    
 <td>Libelle:</td>    
 <td> <input type="texte" id="libcat"></td>    
 </tr>    
 <tr>    
  <td>Marque:</td><td>    
 <td> <input type="texte" id="marque"></td>    
 <td><INPUT TYPE="reset" VALUE="Effacer"><INPUT TYPE="button" VALUE="Valider"  onclick="ajaxFunction()"></td>    
 </tr>    
 </table>    
 </form>


Ce forumaire appel ensuite une fonction ajaxFunction() qui envoie les valeurs à un script php pour faire un insert dans une table.

<?php    
$dbconnect=pg_connect("host=localhost dbname=PTI user=postgres password=XXXXX");    

if ( (isset($_GET["lib"]) && isset($_GET["marque"]) )) {    
$lib=$_GET['lib'];    
$marque=$_GET['marque'];    
   $count = "INSERT INTO categorie VALUES (default,'".$lib."','".$marque."')";     
       
   echo"Enregistrement OK";    
         pg_query($dbconnect, $count);    
 }    
  else { echo("Erreur!");}    
?>


Mon problème étant que j'aimerai afficher les échos dans la saisie du Libelle du formulaire une fois l'insertion effectuer ou bien le 2éme echo si cela ne fonctionne pas.
Je fais
 ajax.onreadystatechange = function(){    
     // On ne fait quelque chose que si on a tout reçu et que le serveur est ok    
     if(ajax.readyState == 4 && ajax.status == 200){    
      leselect = ajax.responseText;    
           document.getElementById('libcat').innerHTML = leselect;    
     }    
    }


(Je ne postes pas tout le code JS, il fonctionne correctement, c'est juste l'affichage dans un id qui ne fonctionne pas)
mais rien ne s'affiche.

C'est un problème tout bête mais impossible de le résoudre... -_-

Merci de votre aide :)

A voir également:

2 réponses

supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
13 nov. 2011 à 17:05
je n'ai pas lu tout ton code mais à la place de :
document.getElementById('libcat').innerHTML = leselect;


je mettrais plutôt :
document.getElementById('libcat').value = leselect;
0
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 125
13 nov. 2011 à 17:14
Ce qui fonctionne parfaitement bien!
Peux-tu m'expliquer stp pourquoi ?
Histoire que je me couches moins idiot se soir :)
0
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
Modifié par supernico le 13/11/2011 à 17:19
en fait pour un input tu peux lire ou écrire sa valeur dans l'attribut "value". l'attribut innerHTML n'existe pas pour les input (ou en tout cas il n'est pas recommandé de l'utiliser)

Plus d'infos ici :
https://www.w3schools.com/tags/tag_input.asp

question résolue ? ;)
0
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 125
13 nov. 2011 à 17:42
Question résolue !
MERCI
0