Action javascript sur select

Résolu/Fermé
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 - 28 sept. 2015 à 22:14
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 - 29 sept. 2015 à 01:50
Bonjour,
Doucement, j'avance. Je suis arrivé à émettre un alert() qui fonctionne bien sur un choix d'une boite select. Ce que je voudrais, c'est supprimer la balise alert() et récupérer la donnée dans un format interprétable php en ouvrant une session et mettre cette variable ( this.options[this.selectedIndex].value) en variable session.
Voici mon code :

<SELECT NAME=selTest
onchange="alert('Index: ' + this.selectedIndex + '\nValeur: ' +
this.options[this.selectedIndex].value)">
<?php
include ("./lib/cnx.php");
$requete="select * from type" ;
$result=mysql_query($requete,$cnx) or die (mysql_error());
?>
<table><tr><td>
<option value='0'>          </option>
<?php
while($val = mysql_fetch_row($result))
{
echo "<option value =".$val[2]."> ".$val[1]." </option>";
}
echo "</select></form>";
?>
Ca, ça marche.
merci d'avance

1 réponse

nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
28 sept. 2015 à 22:49
Bonjour,

Je ne suis pas sur de bien comprendre ce que tu veux mais ce code permet l'envoie du formulaire dans une variable de session.

<?php
session_start();

include "./lib/cnx.php";
$requete = "select * from type";
$result = mysql_query($requete, $cnx) or die (mysql_error());

if (isset($_POST['send-form'])){
	
	//Valeur du formulaire dans la variable $_POST affecté à une variable de session
	$_SESSION['form'] = $_POST;	
	
	
	//Affichage de la variable de session
	echo '<pre>';
	print_r($_SESSION['form']);
	echo '</pre>';
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  <table>
    <tr>
      <td><select name="selTest">
          	<option value="0"></option>
			<?php
			while($val = mysql_fetch_row($result)){
				echo '<option value="'.$val[2].'">"'.$val[1].'"</option>';
			}
            ?>
        </select>
       </td>
    </tr>
    <tr>
      <td><input type="submit" name="send-form" value="Send"/></td>
    </tr>
  </table>
</form>

0
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 1
28 sept. 2015 à 23:22
Merci pour ta réponse mais je voudrais éviter un submit.
Mon truc c'est :
j'ouvre une page index, dans cette page, si il existe une variable session, par exemple RP_, je veux lister dans une table livres tous les codes commençant par RP_.
Donc je sélectionne dans mon select initial Romans Policiers, et je récupère le code correspondant pour continuer mes requêtes.
S'il n'existe pas de variable session, j'attends un choix et hop, le onchange déclenche tout.
Mon problème se trouve bien au niveau de la fonction onchange. J'ai essayé un onchange="document.write(this.options[this.selectedIndex].value)"; qui affiche ce que je veux mais que je n'arrive pas à transformer en variable session.
Comment récupérer la valeur en php de ce onchange="document.write(this.options[this.selectedIndex].value)"???
0
Yo,
pour envoyer une valeur il faut passer par submit, en PHP en tout cas(PHP=serveur, javascript=client, pas de communication entre eux sauf avec ajax).

Donc le formulaire doit être envoyé(dans l'exemple de nicelife90 à la même page mais c'est mieux et plus propre de faire un fichier externe en PHP) et la valeur à récupérer est:

echo $POST['selTest']; //sans oublier les guillemets dans l'écriture du name HTML, mieux encore utiliser ID qui le rends unique.

Pour envoyer le formulaire sur le onchange on peut utiliser .submit en js.
Pour ce que vous voulez AJAX me sembles mieux adapté: ça consiste à charger tout les résultats possible de la requête et la convertir en XML(ou autre métadonnées) pour ensuite afficher les résultats de celle ci sans passer par le serveur.
0
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 1 > Ramza
Modifié par clé de 12 le 29/09/2015 à 02:15
Bon ben apparemment je vais être bloqué sur mon select... Dommage, ça aurait été bien, d'autant que ce que je veux marche sur des sites comme SNCM.fr (choix de la voiture ==> choix du modele. Mais peut être passent ils par de l'AJAX et je n'en ai pas les compétences. Merci quand même pour l'effort ....... mais je vais continuer à creuser en espérant trouver un truc même con mais qui marche :o)

J'AI TROUVE §§§§§§
JE METS UNE BALISE <FORM> avec method 'post' et action='index2.php' > puis je modifie le
onchange="this.form.submit(this.options[this.selectedIndex].value)">
Là je récupère la valeur postée en index.php.
Je n'ai qu'a créer une feuille index2 identique au index initial ou mettre un if (!isset($_POST pour shunter ou non le select.
Je suis génial :o)
0