Problème pour récupérer une valeur avec la methode $_POST

Signaler
Messages postés
13
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
10 août 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour à tous,

Cela fait 2 jours que je parcours les forums et je suis tjs bloqué... Donc j'espère qu'on pourra me répondre.

Je souhaite récupérer à l'aide d'un script Javascript un identifiant qui me premettrait de faire une requête sql sans recharger tout la page.

Mon code javascript:

function EquipeId(equipe_id, libelle) {
   
    var xhr_object = null;

    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;
    }

    var id = equipe_id;
    var data = null;

    if(id != "")
           data = "id="+id;
          
       document.getElementById("textChoix").innerHTML = libelle;
     
    xhr_object.open("POST", "index.php", false);
   
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    xhr_object.send(data);
   
    alert(data);

}

Je récupère bien le libelle sur ma page principale sans recharger la page. Avec le alert() je constate que data vaut par exmple 'id=7'.

Mais je n'arrive pas à utiliser la méthode $_POST dans ma page index.

<li>[a.php ', '<?php echo donnee['Libelle']; ?>')"><?php echo $donnee['Libelle']; ?>]</li>

Je voudrais que quand je clique sur une Equipe, je ppuisse récupérer dans une variable (php) cet idetifiant.

Merci d'avance.
               

9 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
Bonjour,

ta page html, appelle index.php ( avec ajax, mais index.php s'en contrefiche de ça )
dans la quelle tu peux utiliser $_POST['id'] et qui retournera ( par echo par exemple )
des données,
ces données qui seront exploitées, par le javascript avec xhr_object..responseText
comme tu es en synchrone ( il parait qu'il vaut mieux de l'asynchrone ;o), derrière le send
là où tu fais ton alert(data) .

Cordialement [mon Site] [M'écrire] Bul
Messages postés
13
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
10 août 2009

Voila ce que je reçois comme erreur quand j'utilise un $_POST['id'] dans ma page index.php:

Notice: Undefined index: id in D:\wamp\www\site_test\a.php on line 45

Une idée?
Messages postés
13
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
10 août 2009

Erreur : remplacer a.php par index.php
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
déjà que tu me donnes cette erreur me semble plus que curieux !
et pour moi, ben ça marche....

ton erreur est ailleurs, ou les choses ne se déroulent pas comme tu le penses.

<hr size="2" width="100%" />page.htm :

   

    <script>
        function EquipeId(equipe_id, libelle) {
             var xhr_object = null;
             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;
             }
             var id = equipe_id;
             var data = null;
             if(id != "")
                      data = "id="+id;
                 document.getElementById("textChoix").innerHTML = libelle;
             xhr_object.open("POST", "index_1.php", false);
             xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
             xhr_object.send(data);
             alert(xhr_object.responseText);
        }
    EquipeId('test','test');
    </script>

<hr size="2" width="100%" />index_1.php :
<?php echo 'recu='.$_POST['id'];     ?>

<hr size="2" width="100%" />et ça baigne.
essaye et dis nous.

si tu mets n'importe quoi $_POST['xxxx'] comme tu n'affiches
pas le retour, je ne vois pas comment ut peux afficher cette erreur ????
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
mis index_1.php comme nom, car index.php s'exécuterait
automatiquement en allant dans le répertoire.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
 if(id != "")   data = "id="+id;
il peut donc  arriver (?) que id=??? ne soit pas envoyé !


perso j'évite les nom qui ressemblent à ce que connais le html, je javascript....
id ici. un jour ou l'autre ça pose des soucis.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
mais même avec
    EquipeId('','test');
    on affiche : recu=
@+
Messages postés
13
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
10 août 2009

Question idiote mais bon on sait jamais,

Est-ce que c'est gênant que mon script ( fonction EquipeId() ) soit dans un fichier séparé?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
tu veux dire dans un .js ?
aucune importance...

s'il n'y pas d'erreurs !!!

<table id="aff" border="1" cellpadding="2" cellspacing="2">----
Navigateurs |Quelques Explications |----,
Chrome

</td>contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----

FireFox, Outils / Console d'erreurs
et mieux : télécharger FireBug, ----

Internet
Explorer, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----

K-Meleon, Outils / Console d'erreurs, ----

Opera, utils / Asole d'erreurs, ----

Safari, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>

</td></tr></tbody></table>