Passer ou non des paramètres à une page php

Slyken Messages postés 24 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 11 mars 2010 - 27 avril 2009 à 12:27
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 - 28 avril 2009 à 16:08

6 réponses

Slyken Messages postés 24 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 11 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.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
27 avril 2009 à 12:41
Bonjour,

var param;
if(arguments.length==5)//s'il y a 5 paramètres

            param="identr:'"+identr+"', idaffaire:'"+idaffaire+"', idrole:'"+idrole+"', typerole:'"+typerole+"'";

        else

            param="";

Cordialement [mon Site] [M'écrire] Bul
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
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]
0
Slyken Messages postés 24 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 11 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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
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

@+
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
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>
   
       
       
   
</html>

php:
<?php

    if ( isset($_GET["hello"])){
        echo $_GET["toto"];
        return;
    }
    else{
    echo $_GET["hello"];
    }
?>

si le champ est renseigné, rien ne s'affiche ou plutôt une popup ne contenant rien s'affiche sinon, "coincoin" s'affiche dans la popup.

[o-_-o]
0
Rejoignez-nous