Récupération variable JavaScript en Php

Fermé
Signaler
Messages postés
2
Date d'inscription
mercredi 27 août 2014
Statut
Membre
Dernière intervention
28 août 2014
-
Messages postés
31
Date d'inscription
jeudi 28 août 2014
Statut
Membre
Dernière intervention
18 avril 2016
-
Bonjour,

Tout d'abord, je suis un débutant dans ce domaine mais j'ai un projet qui me demande de traiter du JS. Cette question à peut-être déjà eu une réponse mais après en avoir consulté pendant plusieurs heures sans résultat je me dis que le mieux serais peut-être d'exposer mon problème directement...

Je fais actuellement un formulaire pour un intranet, et dans celui-ci il y à une liste à bascule. J'ai réussi à récupérer les valeurs de la deuxième liste dans une variable JS que j'ai vérifier avec la bonne vielle méthode du alert.

Le problème est que j'ai besoin de récupérer cette variable après l'envoie de mon formulaire pour la traiter en Php. Alors de ce que j'ai compris j'ai plusieurs solutions, soit l'Ajax (que j'ai tenté, en vain...) soit la passer dans l'URL.

Le plus simple reste de la passer dans l'Url je pense mais j'ai vraiment du mal alors si une âme charitable se sens de me filer un coup de patte...

La liste à bascule sur monformulaire.php: (soigneusement piquée sur internet...)

<SCRIPT>
function Deplacer(l1,l2) {
//D'autres scripts sur https://www.toutjavascript.com/main/index.php3
//Si vous utilisez ce script, merci de m'avertir ! < webmaster@toutjavascript.com >
if (l1.options.selectedIndex>=0) {
o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
l2.options[l2.options.length]=o;
l1.options[l1.options.selectedIndex]=null;
}else{
alert("Aucune activité sélectionnée");
}
}
</SCRIPT>
<TABLE><TR>
<TD align="center"><B><FONT size="2">Logiciels disponibles</FONT></B><BR>
<SELECT align=top name="liste1" size=6 style="width:200px" multiple="multiple" >
<OPTION value="0">0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
</SELECT>

</TD>
<TD align="center">
<INPUT type="button" value="Ajouter >>>" onClick="Deplacer(this.form.liste1,this.form.liste2)">
<BR><BR>
<INPUT type="button" value="<<< Enlever" onClick="Deplacer(this.form.liste2,this.form.liste1)">
</TD>
<TD align="center"><FONT size="2"><B>Logiciels retenus</B></FONT><BR>
<SELECT align=top name="liste2" size=6 style="width:200px" multiple="multiple">

</SELECT>
</TD>
</TR></TABLE>

<input type="submit" name="OK" Value="Envoyer" style="width : 100px; margin-left : 200px" onClick="twAfficheSelections(liste2)"/>


La fonction JS qui me permet de récupérer la variable dans Scripts.js:


function twAfficheSelections(_select) {
for (var i=0; i<_select.length; i++) {
var test = _select[i].value;
}

Et je récupère les données sur la cible de mon formulaire cible.php.

Je donne les choses brut sans mes essais parce que je pense être assez loin du compte. Je vous demande pas forcément de me pondre le code parfait pour que ça fonctionne (après si vous avez envie... :p ) mais de m'aiguiller parce que là je patauge...

(Il est possible que ce que je dis n'ai parfois aucun sens c'est parce que je le rappel, je débute...)

Merci !

3 réponses


Bonjour,
Alors d'après ce que j'ai pu comprendre, vous souhaitez "simplement" traiter le formulaire après son envoi...

Cela se passe en PHP...
Pour un formulaire de ce type :
<form action="test.php" method="POST" (method="GET" si l'on veut passer dans l'URL)>
<input (ou select, ou autre) name="mon_champ" />

--- Button submit ou reste du formulaire
</form>


Dans le script test.php, on récupère la variable de la façon suivante :
<?php 
$Ma_Variable = $_POST['mon_champ'];

//ou si on l'a passé dans l'URL
$Ma_Variable = $_GET['mon_champ'];
?>


Voici la syntaxe a adopter pour ce genre de commande... :)
Messages postés
2
Date d'inscription
mercredi 27 août 2014
Statut
Membre
Dernière intervention
28 août 2014

Non c'est plus compliqué que ça. J'ai dans mon formulaire une liste à bascule, c'est à dire deux colonnes avec deux boutons permettant de faire basculer des valeurs d'une colonne à une autre. Et j'aurais aimé récupérer les valeurs de la 2eme colonne. Cette valeur j'ai réussi à l'isoler dans une variable mais en Javascript. Sauf que cette variable en JS, de ce que j'ai compris est traité chez l'utilisateur et non sur le serveur (comme en Php), je ne peux donc pas la récupérer aussi facilement pour la traiter ensuite (envoie d'un mail avec ces valeurs par exemple).
C'est pourquoi je demandais comment EN GROS comment convertir une variable JS en PHP. (J'émettais l'hypothèse de l'ajax ou de la stocker dans l'URL pour la récupérer ensuite...)

Merci de votre réponse en tout cas !

Pour faire passer cette variable en AJAX, il est possible d'utiliser "post" de Jquery

//Remplacer ce qui convient
variable_a_passer = variable_obtenue_avec_alert;
$.post("script.php", {variable : variable_a_passer},function data(reply){});



script.php
$Variable = $_POST['variable'];


Voilà :)
Messages postés
31
Date d'inscription
jeudi 28 août 2014
Statut
Membre
Dernière intervention
18 avril 2016
3
Utilisez du JSON avec Ajax...

Par exemple :

Html:
<div class="container">
	<form action="test.php" method="post" id="formulaire">
		<input name="nom" />
		<input type="submit">
	</form>
</div>

JS (jQuery):
<script type="text/javascript">
	$(function(){
		$('#formulaire').on('submit', function(e){
			e.preventDefault();
			var form = $(this);
			var action = form.attr('action');
			var nom = form.find('input[name=nom]').val();
			$('.error').fadeOut(200, function(){
				$(this).remove();
			});
			$.post(action, {nom : nom}, function(data){
				if(data.error) {
					form.append('<span class="error">'+data.error+'</span>').hide().fadeIn(500);
				} else {
					form.fadeOut(500, function(){
					 $(this).remove();
					 $('.container').append(data.success).hide().fadeIn(500);
					});
				}
			}, "json");
			return false;
		});
	});
</script>


PHP:
<?php
	if($_POST && !empty($_POST)) {
		$m = array(
			"success" => "Bravo <em>".$_POST['nom']."</em>!",
			"error" => "Erreur, merci de vérifier vos informations",
		);
		$json = array();
		if(empty($_POST['nom'])) {
			$json['error'] = $m["error"];
		}else {
			$json['success'] = $m["success"];
		}

		echo json_encode($json);
	}
?>