09-22-2008, 08:03 PM
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() .
Voici le début de mon fichier de réception:
Donc en faisant la méthode suivante :
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:
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
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