Question ajax

Résolu/Fermé
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016 - 2 janv. 2015 à 17:09
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016 - 3 janv. 2015 à 15:42
Bonjour,


Peux t'on envoyer en ajax des données en GET et d'autre en POST celà en même temps ?

6 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
2 janv. 2015 à 18:37
Bonjour,
Je suppose que cela est possible...
Lorsque tu appelles l'ajax POST .. tu dois pouvoir mettre des variables dans ton URL...

Mais je ne comprend pas vraiment l'interret.... pourquoi ne pas tout mettre en POST directement ?


0
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016
Modifié par jordane45 le 3/01/2015 à 01:42
je cherche à faire une api : par exemple pour ajouter un obj dans dans un certain module j'ai besoin d'un get() repérer dans une variable action puis des variables la suite et en post() qui sont utilisée par le controleur :

//AJOUTER
 if($action == "add")
 {
  if(isset($_POST['id']) && isset($_POST['name']))
  {
   $ref = $_POST['id'];
   $nom = $_POST['name'];

  } else
  {
   
  }
 }


peux tu me donner plus de détail :j'ouvre un xhr en 'POST' et dans la déclaration de l'url j'y mets ma variable en plus ?

...
val1='add';
xhr.open('POST', '....module=obj&action='+val1+'');

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 3/01/2015 à 02:12
j'ai besoin d'un get() repérer dans une variable action puis des variables la suite et en post()

Je persiste ... .. pourquoi ne pas TOUT passer en POST .. ta variable ACTION y compris ???

Edit :
peux tu me donner plus de détail :j'ouvre un xhr en 'POST' et dans la déclaration de l'url j'y mets ma variable en plus ?

Oui ça doit pouvoir fonctionner... (mais je n'ai jamais testé)

Cordialement,
Jordane
0
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016
3 janv. 2015 à 03:01
par exemple pour que l'instruction se poursuive ici il faut un $action=$_GET[add] obligatoirement puis $_POST['id']) & $_POST['name']
0

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

Posez votre question
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 3/01/2015 à 15:15
'lut, j'insiste sur le point de jordane45: en quoi vérifier des champs dans $_POST en fonction de l'action t'empêcherais de mettre cette dite action dans les données POST? Ces données circulent sous la forme clé/valeur, et si une clé demandée n'existe pas, PHP renoie NULL, c'est tout.
Autrement dit ceci est parfaitement valable:
$action = $_POST['action'];
if($action == "add") {
  if(isset($_POST['id']) && isset($_POST['name'])) {
    $ref = $_POST['id'];
    $nom = $_POST['name'];
  } else {
    // erreur ...
  }
}
Et comme tu nous montres via ton code que ton controlleur a accès à $_POST, il n'y a pas de problème...
from human import idiocy
del idiocy
0
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016
Modifié par leandro95 le 3/01/2015 à 15:23
$action = isset($_GET['action']) ? $_GET['action'] : "";

L'action est obligatoirement récupérer en GET(et celà n'est pas modifiable) dans mon module c'est pour que l'exécution passe les deux instructions qu'il faut un GET ET UN POST
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 janv. 2015 à 15:23
Pourquoi OBLIGATOIREMENT ??
Certes... dans TON code actuel..
$action = isset($_GET['action']) ? $_GET['action'] : ""; 

c'est en GET qu'elle est récupérée ... mais pourquoi NE VEUX TU PAS la changer en POST ??
$action = isset($_POST['action']) ? $_POST['action'] : NULL; 
0
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016
Modifié par leandro95 le 3/01/2015 à 15:27
Je t'explique dans mon module tu envoie une action en GET suivant tu affiche un formulaire(les deux variables post n'existent pas) qui te renvoie sur ce même module la même action en GET et les deux variables en POST par le formulaire et tu les traitent
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 janv. 2015 à 15:27

dans mon module c'est pour que l'exécution passe les deux instructions qu'il faut un GET ET UN POST

Bon.. de toutes façons on t'a déjà répondu.
Donc Oui ça doit être faisable ( tu n'as qu'à le tester)...

Mais bon.. je me répète.. il n'y a strictement aucune utilité à utiliser du POST avec du GET .... et je ne comprend vraiment pas pourquoi tu t'obstine à le vouloir. Mais.. c'est ton problème après tout.. donc fais comme tu le veux.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225 > leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016
Modifié par gravgun le 3/01/2015 à 15:30
Si je pige bien ça fait:
1. GET avec un paramètre
2. Réponse du serveur avec un formulaire
3. POST avec le même paramètre et les données du formulaire rempli en POST
Autant tout faire en POST vu que tu gères ça via JavaScript.
En faisant tout en POST on peut même le faire sans JS via un champ hidden... (mais du coup sans AJAX -> rechargement de page)
0
leandro95 Messages postés 67 Date d'inscription vendredi 25 avril 2014 Statut Membre Dernière intervention 5 juin 2016
3 janv. 2015 à 15:30
$action = isset($_GET['action']) ? $_GET['action'] : "";

//AJOUTER
if($action == "ajouter"){

if(isset($_POST['ref']) && isset($_POST['name']))
{
$ref = $_POST['ref'];
$nom = $_POST['nom'];
Modele::ajouter($ref, $vame);

} else
{
Modele::afficherFormulaire();
}
}


elseif ($action == "modifier"){/*code*/}


0