Bonjour tout le monde, Pour faire simple et afin que ca soit plu

Aaymeric Messages postés 78 Date d'inscription   Statut Membre Dernière intervention   -  
Aaymeric Messages postés 78 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,
Pour faire simple et afin que ca soit plus compréhensible je vais un peu changer la situation de mon problème mais la solution est semblable.
Dans un formulaire j'ai plusieurs listes déroulantes en HTML et une fonction javascript va regrouper et renvoyer en une valeur les choix des listes. Sur cette page, j'ai un bouton qui, lorsque je clique dessus, il m'affiche la valeur renvoyée par la fonction javascript via une alert.

Ce que je souhaiterais faire, c'est supprimer ce bouton (facile) mais via un submit (qui me redirige vers une page verifobjet.php) c'est récupérer la valeur envoyé par le code javascript et pouvoir la traitée et la mettre dans une variable php.

Quand je dis que la fonction renvoie la valeur c'est via un onclick:
 onclick="goListGroup(document.listmenu0.firstlevel, document.listmenu0.secondlevel, document.listmenu0.thirdlevel)"


Code JS:
var onclickaction="alert"
 
function goListGroup(){
for (i=arguments.length-1;i>=0; i--){
if (arguments[i].selectedIndex!=-1){
var selectedOptionvalue=arguments[i].options[arguments[i].selectedIndex].value
if (selectedOptionvalue!=""){
if (onclickaction=="alert")
alert(selectedOptionvalue)
else if (newwindow==1)
window.open(selectedOptionvalue)
else
window.location=selectedOptionvalue
break
}
}
}
}


Suis-je obligé de passer par de l'ajax ?
Si non, pourriez vous m'aider à trouver une solution sans passer par les name des listes déroulantes ? Merci
A voir également:

4 réponses

nagasha
 
Salut,
Un formulaire HTML a plusieurs attributs impotants(balise FORM).
method=
indique le type denvoi soit POST soit GET.
POST pour envoyer à une autre page, GET pour envoyer dans la même page en rechargeant celle ci.

action=
indique la page(url) à laquelle sont envoyées les données du formulaire.

Donc si vous voulez envoyer vos données à une page PHP pour traiter celle ci il faut écrire:

<form method="POST" action="verifobjet.php">

Si vous rajoutez une vérification des champs en javascript celui ci va n'envoyer les informations seulement si celles ci correspondent à vos critères.
Pour valider l'envoi en js il y a la fonction submit() comme ceci:

http://www.w3schools.com/jsref/met_form_submit.asp
0
Aaymeric Messages postés 78 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai bien compris le fonctionnement des formulaires mais je souhaite je souhaite récupérer une variable js qui est générée avant que je clique sur le bouton submit. Ce que je souhaite faire c'est faire passer la variable js selectedOptionvalue à ma page verifobj.php mais je suis completement perdu et je n'arrive pas à grand chose :s
0
Aaymeric Messages postés 78 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai quand même essayé en ajax mais je ne comprends pas pourquoi ca ne fonctionne pas.

Mon code
function goListGroup(){
for (i=arguments.length-1;i>=0; i--){
if (arguments[i].selectedIndex!=-1){
var selectedOptionvalue=arguments[i].options[arguments[i].selectedIndex].value
if (selectedOptionvalue!=""){
if (onclickaction=="alert")
alert(selectedOptionvalue)
else if (newwindow==1)
window.open(selectedOptionvalue)
else
window.location=selectedOptionvalue
break
}
}
}
$.ajax({
       	url : '../objet/test.php',
       	type : 'POST', 
       	data : 'mavariable1=' + selectedOptionvalue,
    });
}


et dans test.php


<?php
include '../connection.php';
$mavariable2=$_POST['mavariable1'];
echo $mavariable2;
?>


J'ai un message d'erreur car il ne repère pas la variable mavariable1
0
Aaymeric Messages postés 78 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai également essayé avec ceci mais $_POST['mavariable1'] n'est toujours pas détectée


var xhr = new XMLHttpRequest();
xhr.open("POST", "../objet/test.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("mavariable1=" + escape(selectedOptionvalue));


Vous pouvez m'aider ?
0