Slyken
Messages postés24Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention11 mars 2010
-
27 avril 2009 à 12:27
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 2017
-
28 avril 2009 à 16:08
Slyken
Messages postés24Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention11 mars 2010 27 avril 2009 à 12:29
J'ai dû faire une boulette, désolé je recommence :
Bonjour,
je voudrais pouvoir appeler une page php en lui donnant des paramètres uniquement si j'en ai en entrée.Voilà mon code, ça va être plus clair :
function ouvrePopup(page, identr, idaffaire, idrole, typerole) {
try {
if(arguments.length==5)//s'il y a 5 paramètres
var param="identr:'"+identr+"', idaffaire:'"+idaffaire+"', idrole:'"+idrole+"', typerole:'"+typerole+"'";
else
var param=NULL;
new Ajax.Request(page, {
parameters: {param},
onSuccess: function(transport) {
Le problème, c'est que ça ne passe pas...
Cela vient de ma variable param, car si je mets "parameters:{}", tout fonctionne !
Est-ce que vous auriez une idée pour résoudre ce problème ?
Merci.
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 27 avril 2009 à 12:59
Bonjour il existe plusieurs solution:
la première passer par l'attribut parameters de Ajax.Request de prototype:
var _params = (arguments.length==5) ? "identr:"+identr+"&idaffaire="+idaffaire+"&idrole="+idrole+"&typerole='"+typerole : "";
new Ajax.Request(page, {
parameters: _params,
onSuccess: function(transport) {
sinon (ça revient au même)
var page = (arguments.length==5) ? page + "?identr:"+identr+"&idaffaire="+idaffaire+"&idrole="+idrole+"&typerole='"+typerole : page;
new Ajax.Request(page, {
onSuccess: function(transport) {
}
}
);
ça devrait fonctionner. A toi de choisir la bonne ;o)
[o-_-o]
Slyken
Messages postés24Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention11 mars 2010 28 avril 2009 à 15:39
Merci pour ces réponses, mais ça ne marche pas tout à fait.
En faisant des "&machin=truc", je suis obligé de remplacer les $_POST par $_GET sur mes pages php, ce qui ne m'arrange pas vu que je utilise cette même page de partout, je devrais tout changer :/
@Bul3 : j'avais déjà essayé la chaine vide, apparemment ça ne marche pas si je fais un parameters:{ } avec une chaine vide dans les accolades.
Est-ce qu'il y a encore d'autres solutions ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 avril 2009 à 15:47
>>ça ne marche pas si je fais un parameters:{ }
regarde ce que dis zobibol
new Ajax.Request(page, {
parameters: _params, // pas de { }
>>En faisant des "&machin=truc", je suis obligé de remplacer les $_POST par $_GET sur mes pages php,
si tu passes les paramètres dans l'url ( dans page )
pas dans param
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 28 avril 2009 à 16:08
En effet, les tests que j'ai mené s'appuies sur des get et non des post
Donc, en théorie et en pratique aussi ou alors uniquement sur mon poste (avec un E) moi ça fonctionne par le passage dans parameters.
ci-joint mon source de test:
html :
<html>
<head>
<script language="JavaScript" src="./prototype.js" ></script>
<title></title>
<script>
function testMe(){
var _param = ( $("test").value.length>0) ?"hello=from world&toto=coincoin" : null;
var page ="test.php";
new Ajax.Request("test.php",{
parameters:_param,
method:'GET',
onSuccess: function(transport) {
alert (transport.responseText);
}
});
}
</script>
</head>