P0ulp0r
Membre
Messages : 314
Inscription : Oct 2006
Réputation : 4
|
[résolu] Javascript, envoie de paramètres
Yop tous,
Alors j'ai un léger problème avec un envoie de paramètre en JS.
M'étant récemment mis au javascript pour faire du Ajax, je dois actuellement lutter sur un problème d'envoi de paramètre pour un fichier php.
Voici le code Javascript, sachant que les paramètres sont bien reçus, j'ai vérifié avec un document.writer() .
Code PHP :
/** * Méthode qui va permettre de faire du ajax avec les constructions * @param int : typeParam * @param int : idParam */ function build(typeParam, idParam){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('resultat').innerHTML = leselect; } } // Ici on met le post xhr.open("POST","../v3/Build/JoueursBatiments.class.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // les variables data="type=typeParam&id=idParam"; xhr.send(data); }
Voici le début de mon fichier de réception:
Code PHP :
if ( isset($_POST["type"]) && !empty($_POST["type"]) && isset($_POST["id"]) && !empty($_POST["id"]) ) {
} else echo "<span class=\"rouge\"><b>Variables vides ou enxistantes</b></span>";
Donc en faisant la méthode suivante :
Code PHP :
// les variables data="type=typeParam&id=idParam"; xhr.send(data);
Je franchis bien les conditions, mais en faisant un echo je m'aperçois que les variables contiennent respectivement :
$_POST["type"] = typeParam et $_POST["type"]= idParam
Au lieu des 2 entiers qui devraient normalement être à la place de ces string, je reçois cela. Qui en faite si l'on fait attention, contiennent le nom des variables envoyés :/
J'ai donc essayé cette solution pour envoyer des int et non le nom des variables:
Code PHP :
// les variables data="type="+typeParam+"&id="+idParam; xhr.send(data);
Mais cela ne marche pas, puisque dans le fichier de réception, cela ne franchis pas les conditions du if et me renvoie sur mon echo du else.
Bref, je ne vois absolument pas, malgré une recherche.
Donc si quelqu'un pouvait m'éclairer sur ce léger problème qui me cause des torts depuis quelques heures
Merci d'avance pour toute aide
(Ce message a été modifié le : 11-13-2008 12:37 PM par Sephi-Chan.)
|
|
| 09-22-2008 08:03 PM |
|
Ekilio
Membre
Messages : 209
Inscription : Apr 2008
Réputation : 10
|
RE: Javascript, envoie de paramètres
Bonjour,
De toutes façons, c'est :
Code PHP :
// les variables data="type="+typeParam+"&id="+idParam; xhr.send(data);
qu'il faut que tu fasses. Autrement, tu envois juste une chaine de caractères.
Mais ta condition... Ben, essayes de faire un var_dump($_POST) et regardes ce que tu as ?
|
|
| 09-22-2008 08:28 PM |
|
P0ulp0r
Membre
Messages : 314
Inscription : Oct 2006
Réputation : 4
|
RE: Javascript, envoie de paramètres
Voilà ce que cela affiche :
Code PHP :
string(9) "typeParam" string(7) "idParam"
Donc bien le nom des variables, car "typeParam" contient 9 caractères et "idParam" contient bien 7 caractères.
Bref, il m'envoie des string des noms de variables au lieu des entiers.
Bref, assez embêtant ce problème
(Ce message a été modifié le : 09-22-2008 08:45 PM par P0ulp0r.)
|
|
| 09-22-2008 08:42 PM |
|
Ekilio
Membre
Messages : 209
Inscription : Apr 2008
Réputation : 10
|
RE: Javascript, envoie de paramètres
Même en mettant :
Code PHP :
// les variables data="type="+typeParam+"&id="+idParam; xhr.send(data);
Dans ton code au lieu d'une seule chaine ?
|
|
| 09-22-2008 09:20 PM |
|
P0ulp0r
Membre
Messages : 314
Inscription : Oct 2006
Réputation : 4
|
RE: Javascript, envoie de paramètres
Ekilio a écrit :Même en mettant :
Code PHP :
// les variables data="type="+typeParam+"&id="+idParam; xhr.send(data);
Dans ton code au lieu d'une seule chaine ?
Là je n'ai carrément aucun affichage, c'est pour cela.
Je viens de réessayer pour en être sur, il y a toujours rien :/
Il faut dire, que c'est un peu énervant ce problème, mais bon.
Edit: Oulà, je comprends rien, maintenant ca marche en mettant ce que tu m'as, dis. Alors qu'avant impossible oO'
Même en ayant réessayer après ton poste. Bref je comprends pas trop.
Par contre, léger soucis, il ne reconnait pas les variables:
string(1) "0" string(2) "44" Variables vides ou enxistantes
Donc il passe par le else et non par el if, il faut que je regarde ca.
Merci à toi Ekilio
(Ce message a été modifié le : 09-22-2008 09:52 PM par P0ulp0r.)
|
|
| 09-22-2008 09:36 PM |
|
Ekilio
Membre
Messages : 209
Inscription : Apr 2008
Réputation : 10
|
RE: Javascript, envoie de paramètres
J'imagine que ton var_dump était placé avant le if() ? Et par hasard, essayes de le faire sur $_REQUEST à la place de le faire sur $_POST, et rajoute un :
alert(data)
Juste avant ton
xhr.send(data);
|
|
| 09-22-2008 09:50 PM |
|
Hakushi
Membre
Messages : 79
Inscription : Sep 2008
Réputation : 1
|
RE: Javascript, envoie de paramètres
[edit] Ok, j'ai rien dit, ca m'apprendra a mettre 30min a ecrire une reponse
Bizarre je viens de tester et ca marche
Code :
function build(typeParam, idParam){
var xhr = new XMLHttpRequest();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
alert(xhr.responseText);
}
// Ici on met le post
xhr.open("POST","test.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// les variables
data="type="+typeParam+"&id=" +idParam;
xhr.send(data);
}
Avec un var_dump dans test.php qui m'affiche bien les bonnes valeurs (je fais un j build(11, 12) )
Code PHP :
array(2) { ["type"]=> string(2) "11" ["id"]=> string(2) "12" } [/i]
(Ce message a été modifié le : 09-22-2008 09:56 PM par Hakushi.)
|
|
| 09-22-2008 09:53 PM |
|
P0ulp0r
Membre
Messages : 314
Inscription : Oct 2006
Réputation : 4
|
RE: Javascript, envoie de paramètres
C'est bon j'ai trouvé d'où cela venait.
Vu que je mettais $_POST["type"]=0, il devait croire qu'elle était vide alors que non.
Bref merci à vous 2 pour cette aide rapide
Je vous souhaite une bonne soirée.
Bonne continuation
(Ce message a été modifié le : 09-22-2008 10:00 PM par P0ulp0r.)
|
|
| 09-22-2008 10:00 PM |
|