Passages de variables pour requete sql [Résolu]

Signaler
Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009
-
Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009
-
Bonjour,

Je ne sais pas si je poste au bon endroit
J'ai une page php avec un formulaire contenant une liste avec des employé, une date, une durée, une activité et enfin un commentaire.
J'ai un bouton d'ajout d'activité qui rajoute les infos ci-dessus dans ma base de données ACCESS.
Pour cela j'ai créé un script AJAX qui appelle une 2ème page php pour effectuer la requete sans recharger ma page.
Cepandant, les varaible de mon formulaire ne sont pas transmises par le script, donc tout les champs rajoutés dans ma base de données sont nul.

Ma question est donc comment fair passer les variables d'une page à l'autre via le script ajax.

Merci d'avance.

48 réponses

Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009

C'est bon sa marche, j'ai passer en
xhr_object.open("POST", fichier, true);
xhr_object.setRequestHeader("Content-type","application/x-www-form-urlencoded");

et sa a fonctionner

Merci a vous 2 de votre aide.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
Bonjour,

ben... c'est expliqué dans toutes les docs ajax ? non ?
si c'est en method get : ???.open("get","url/?paramètres à transmettre", true )
avec post, dans le send  ???.send(paramètres à transmettre);
avec paramètres à transmettre de la forme : nom1=valeur1&nom2=valeur2....
que le php gère avec $_GET ou $_POST [nom1'] et ['nom2']

Cordialement [mon Site] [M'écrire] Bul
Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009

xhr_object.send(emp=lstemp & act=champact ...);

avec lstemp qui viens de la 1ère page php et emp = nom1

c'est cela?
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Comme ça... .. .

@ tchaOo°

l'homme est un loup pour l'homme... .. .
Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009

Lien qui marche pas chez moi ^^.
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Oups... ù*µ$%µ de proxy... je disais donc...

Comme ça... .. .

@ tchaOo°

l'homme est un loup pour l'homme... .. .
Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009

Merci je vais regarder sa.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
xhr_object.send(emp=lstemp & act=champact ...);
avec lstemp qui viens de la 1ère page php et emp = nom1
??? nom 1 ??? c'est quoi ????

dans la page appelée, $_POST['emp'] sera =
      au contenu de la variable javascript lstemp
                         et $_POST['act']           =
                                                        champact
puisqu'il semble que tu utilises post
le contenu des variables javascript, il n'y a que toi qui sache
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

au passage...

xhr_object.send('emp='+
encodeURI(
lstemp)+'&act='+
encodeURI(
champact));

@ tchaOo°

l'homme est un loup pour l'homme... .. .
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
mais tu auras des erreurs de syntaxe !
il faudrait au moins : xhr_object.send("emp="+lstemp+"&act="+champact ...);
Messages postés
32
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
17 juin 2009

voila mon code sa sera peut-être plus claire
index.php:
        <form action= "" method="post">
    employé :
        <select name = "emp">
        <?php
        $rs = mssql_query("select * from employe order by nom");
        $ligne = mssql_fetch_array($rs);
        echo"<option value=0> </option>";
        while ($ligne == true)
        {
        echo"<option value=$ligne[NumEmp]>$ligne[Prenom]</option>";
        $ligne = mssql_fetch_array($rs);
        }
        ?>
        </select>

    &nbsp;Le :
       

    &nbsp;Durée :
       
    &nbsp;Activité :
        <select name = "act">
        <?php
        $rs2 = mssql_query("select * from activite order by Libelle");
        $ligne2 = mssql_fetch_array($rs2);
        while ($ligne2 == true)
        {
        echo"<option value=$ligne2[NumActivite]>$ligne2[Libelle]</option>";
        $ligne2 = mssql_fetch_array($rs2);
        }
        ?>
        </select>

    &nbsp;Commentaire:
       

&nbsp;
</form>

scrript.js:
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("POST", fichier, true);
xhr_object.send(null);  <-----------------------------------------------à mon avis c'est ici que je dois entrer les variables, mais je ne vois pas comment faire
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}

function ajout(aj)
{
file('ajout.php');
alert("Activité ajoutée");
}

ajout.php:
<?php
 //connexion au serveur MsSQL
  $connexion = mssql_connect("192.9.40.6","Edition","edition") or die ("Connexion impossible au SGBD.");

  //sélection de la BDD
  $base = mssql_select_db("GesCra", $connexion) or die ("Sélection de la base impossible.");
 
            $emp = $_POST["emp"];
            $act = $_POST["act"];
            $date1x = $_POST["dateaj"];
            $com = $_POST["com"];
            $duree = $_POST["duree"];
            $rs3 = mssql_query("select max(NumCra) as num from Cra");
            $ligne3 = mssql_fetch_array($rs3);
            $code=$ligne3[num]+1;
   
            $ch = "insert into cra (NumCra, NumEmp, NumActivite, DateCra, Duree, Commentaire) values ('$code', '$emp', '$act', '$date1x', '$duree', '$com')";
            $rs4 = mssql_query($ch);
?>
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>>>c'est ici que je dois entrer les variables, mais je ne vois pas comment faire

ben ?? on t'a dit pourtant ??? non ???
le principe :
xhr_object.send( "nom1 à utiliser en php= "+valeur1 reçue en php +
                        "&nom2 à utiliser en php="+valeur2 reçue en php + ... );
et toi, que veux tu transmettre ?
mettons le nom sélectionné dans ton select et la durée :
           si tu modifies ton from : <form name="frm" action ="" method="post">
xhr_object.send( "toto="+document.frm.emp.options[document.frm.emp.selectedIndex].value +
                        "titi="+document.frm.duree.value );
et coté php tu gères $-POST['toto'] qui est égal au nom sélectionné
et $_POST['titi'] qui est = au délai saisi
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
il fallait lire :
xhr_object.send( "toto= "+document.frm.emp.options[document.frm.emp.selectedIndex].value +
                        " & titi ="+document.frm.duree.value );
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Je vois pas en quoi les double quotes feront moins d'erreur de syntaxe que les simple quotes... tu risque plus d'avoir des erreur de syntaxe à ne pas encoder le contenu des variables... .. .

@ tchaOo°

ps: tu t'adressais peut être à Evony...

l'homme est un loup pour l'homme... .. .
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>tu t'adressais peut être à Evony...
bien entendu ! on s'est croisés, sans que je vois ton message
>>Je vois pas en quoi les double quotes feront moins d'erreur de syntaxe que les simple quotes
en javascript " ou ' c'est pareil
>>tu risques plus d'avoir des erreur de syntaxe à ne pas encoder le contenu des variables
"ça dépend" ( ou 'ça dépend' )  et ici, ça se produirait "avant" ( ou 'avant' )
;o)
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

ou ici & là... lol... .. . ;o)

@ tchaOo°

l'homme est un loup pour l'homme... .. .
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

D'ailleurs j'ai dit une connerie... avec encodeURIComponent() ça marchera mieux... .. . :o)

@ tchaOo°

ps: Bul3... anciennement Bultez ?

l'homme est un loup pour l'homme... .. .
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
comment ça anciennement ?  l'age n'a rien à voir dans l'histoire
...
écoutez l'impartial message
de quelqu'un qui navigue entre 2 ages,
quand on est con ( ou quand on nait !?! ) on est con
petits cons d'la dernière averse
vieux cons des neiges d'antan...
paroles ( de mémoire d'Alzheimer ) de Brassens
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Bon ok... je la refait à l'envers alors... .. .

Bultez ? nouvellement Bul3... .. ?

Enfin c'est une question comme ça... histoire de meubler... lol... ça faisait longtemps que je n'avais pas trainé mes guêtres par ici... .. . ;o)

@ tchaOo°

l'homme est un loup pour l'homme... .. .
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
nouveau ? et alors !  la valeur n'attend pas le nombre des années !  ;o)))
et : oui. pour remettre les compteurs à 0 !
    et je referais probablement, sauf si un modérateur accepte de
    me remettre ces compteurs à 0, ce qui serait bien plus mieux,
   car je dois me déconnecter puis me reconnecter sur bultez pour
   répondre, et c'est ... emµ@#&£%
>>histoire de meubler.
comme le demandeur n'intervient plus ?!?