Problème d'ecriture (XMLHttpRequest)

Résolu
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 16 mars 2008 à 12:35
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 16 mars 2008 à 20:00
Bonjour,

j'éssais de mettre a jour un enregistrement sur mon serveur lorsque l'on change la valeur dans un <SELECT>

Le code PHP:

    ."<td align= "center"><select name=".$id." onchange="maj_info(this.name);">"
        ."<option value=".$dsipo.">".$dsipo."</option>"
        ."<option value="Dispo">Dispo</option>"
        ."<option value="Option">Option</option>"
        ."<option value="Reserve">R&eacute;serv&eacute;</option>"
        ."<option value="Vendu">Vendu</option>"
    ."</select></td>";

Vu que ce code fait partie d'une boucle le nom serra = à $id.

la fonction maj_info ():

function maj_info(info) {
var l1    = f.elements[info];
var index = l1.selectedIndex;

   if(window.XMLHttpRequest) // Firefox
      xhr_object = new XMLHttpRequest();
   else if(window.ActiveXObject) // Internet Explorer
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
   return;
   }
  
   xhr_object.open("POST", " maj_bd.php ", true);
        
   xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState = = 4)
         eval(xhr_object.responseText);
   }
     
   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   var data = "id="+info+"&form="+f.name+"&dispo="+info;
   xhr_object.send(data);
}

Puis le contenus du fichier maj_bd.php :

header('Content-type: text/html; charset =iso-8859-1');
     
$query  = "UPDATE `site_appartement` SET `dispo`= '".$_POST["dispo"]."' WHERE `id` = '".$_POST["id"]."'";
$result = @mysql_query($query);

     
@mysql_close($mysql_db);

La connection à la bdd ce fesant par un include je n'ai pas jugé obligatoir de la mettre.

Je continus à chercher de mon coté mais si déja vous pouviez m'eguillier, merci beaucoup.

Az

2 réponses

davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
16 mars 2008 à 20:00
C'est j'ai trouvé la solution:

    ."<td align="center"><select class="select" name=".$id." onmouseover="envois_id(this.value);" onclick="request('maj_bd.php?id='+this.name+'&valeur='+this.value+'&1=1','xmlhttp');return(false)">"
        ."<option value=".$dsipo.">".$dsipo."</option>"
        ."<option value="Dispo">Dispo</option>"
        ."<option value="Option">Option</option>"
        ."<option value="Reserve">R&eacute;serv&eacute;</option>"
        ."<option value="Vendu">Vendu</option>"
    ."</select></td>";

fonction:

<script language="javascript">
function request(url,cadre) {
    var XHR = null;

    if(window.XMLHttpRequest) // Firefox
        XHR = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
        XHR = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return;
    }
        // envoie de la requête, methode GET et de l'url
    XHR.open("GET",url, true);

        // on guette les changements d'état de l'objet
    XHR.onreadystatechange = function attente() {

        // l'état est à 4, requête reçu !
    if(XHR.readyState == 4)     {

        // ecriture de la réponse
    //document.getElementById(cadre).innerHTML = XHR.responseText;
   }
    }
    XHR.send(null);        // le travail est terminé
    return;
}

fichier maj_bd.php

<?PHP
include("./../../phpbb3/config.php");

if($_GET['1']==1)
{
  $id = (int)$_GET['id']; // numérique, donc on oblige le type
  $valeur = addslashes($_GET['valeur']); // non numérique
 
  // Update ds données GPS du joueur.
  $req_update_1 = " UPDATE site_appartement SET dispo='$valeur' WHERE id='$id' ";
  $result_update_1 = mysql_query ($req_update_1) or die ('Erreur : '.mysql_error());
 
  //si on veut afficher un resultat :
  //echo 'Update : '.$result_update_1;
}
?>

merci Az
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
16 mars 2008 à 18:53
salut, tu a essayé de mettre des : or die("erreur"); derrière tes requête et ta connection ???

Si t'a besoin d'aide, MP !!!
0
Rejoignez-nous