Affectation d'un variable javascript a un vri
Résolu/Fermé
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
-
20 juin 2012 à 12:30
InchRay Messages postés 58 Date d'inscription vendredi 26 août 2011 Statut Membre Dernière intervention 17 février 2014 - 21 juin 2012 à 15:26
InchRay Messages postés 58 Date d'inscription vendredi 26 août 2011 Statut Membre Dernière intervention 17 février 2014 - 21 juin 2012 à 15:26
A voir également:
- Affectation d'un variable javascript a un vri
- Telecharger javascript - Télécharger - Langages
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Programme python ✓ - Forum Python
- Colis en att affectation ✓ - Forum Consommation & Internet
12 réponses
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
20 juin 2012 à 13:28
20 juin 2012 à 13:28
Bonjour,
Tu ne confondrais pas
- traitement cote serveur (php)
- et presentation de données CotéClient (balise Html)
Quoiqu il en soit, ton combobox fesant parti d un formululaire (balise <form>), lorsque tu valides ce formualire (evenement onsubmit="self") tu apelles une page Php ...
Tu a joutes un traitement sur les variables $_GET ou $_POST ....
if (sizeof($_GET)>0){
if (isset($_GET['Ok'])) echo "ma valeur est ".$_GET['Ok'];
}
Tu ne confondrais pas
- traitement cote serveur (php)
- et presentation de données CotéClient (balise Html)
Quoiqu il en soit, ton combobox fesant parti d un formululaire (balise <form>), lorsque tu valides ce formualire (evenement onsubmit="self") tu apelles une page Php ...
Tu a joutes un traitement sur les variables $_GET ou $_POST ....
if (sizeof($_GET)>0){
if (isset($_GET['Ok'])) echo "ma valeur est ".$_GET['Ok'];
}
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
20 juin 2012 à 15:36
20 juin 2012 à 15:36
C'est la mon probleme, je t'explique:
il y a un fichier nommer data.php qui fait la requete vers la base de données . Voici le code:
puis on l'utilise a partir d'un fichier index.php comme suit:
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../jqwidgets/styles/jqx.energyblue.css" type="text/css" />
<script type="text/javascript" src="../../scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxcombobox.js"></script>
<script type="text/javascript">
$(document).ready(function () {
// prepare the data
var source =
{
datatype: "json",
datafields: [
{ name: 'CompanyName'},
{ name: 'ContactName'},
{ name: 'ContactTitle'},
{ name: 'Address'},
{ name: 'City'},
],
url: 'data.php'
};
var dataAdapter = new $.jqx.dataAdapter(source);
$("#jqxcombobox").jqxComboBox(
{
source: dataAdapter,
theme: 'energyblue',
width: 200,
height: 25,
selectedIndex: 0,
displayMember: 'CompanyName',
valueMember: 'ContactName'
});
});
</script>
</head>
<body class='default'>
<div id="jqxcombobox"></div>
</body>
</html>
Bref, le combo box fonctionne bien mais je sais pas maintenant comment recuperer les valeurs selectionner de la liste deroulante. Voici le lien dont j'ai trouver ce tutoriel:https://www.jqwidgets.com/jquery-widgets-documentation/documentation/phpintegration/bind-jquery-combobox-to-mysql-database-using-php.htm
il y a un fichier nommer data.php qui fait la requete vers la base de données . Voici le code:
<?php #Include the connect.php file include('connect.php'); #Connect to the database //connection String $connect = mysql_connect($hostname, $username, $password) or die('Could not connect: ' . mysql_error()); //select database mysql_select_db($database, $connect); //Select The database $bool = mysql_select_db($database, $connect); if ($bool === False){ print "can't find $database"; } // get data and store in a json array $query = "SELECT * FROM customers"; $from = 0; $to = 30; $query .= " LIMIT ".$from.",".$to; $result = mysql_query($query) or die("SQL Error 1: " . mysql_error()); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $customers[] = array( 'CompanyName' => $row['CompanyName'], 'ContactName' => $row['ContactName'], 'ContactTitle' => $row['ContactTitle'], 'Address' => $row['Address'], 'City' => $row['City'] ); } echo json_encode($customers); ?>
puis on l'utilise a partir d'un fichier index.php comme suit:
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../jqwidgets/styles/jqx.energyblue.css" type="text/css" />
<script type="text/javascript" src="../../scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxcombobox.js"></script>
<script type="text/javascript">
$(document).ready(function () {
// prepare the data
var source =
{
datatype: "json",
datafields: [
{ name: 'CompanyName'},
{ name: 'ContactName'},
{ name: 'ContactTitle'},
{ name: 'Address'},
{ name: 'City'},
],
url: 'data.php'
};
var dataAdapter = new $.jqx.dataAdapter(source);
$("#jqxcombobox").jqxComboBox(
{
source: dataAdapter,
theme: 'energyblue',
width: 200,
height: 25,
selectedIndex: 0,
displayMember: 'CompanyName',
valueMember: 'ContactName'
});
});
</script>
</head>
<body class='default'>
<div id="jqxcombobox"></div>
</body>
</html>
Bref, le combo box fonctionne bien mais je sais pas maintenant comment recuperer les valeurs selectionner de la liste deroulante. Voici le lien dont j'ai trouver ce tutoriel:https://www.jqwidgets.com/jquery-widgets-documentation/documentation/phpintegration/bind-jquery-combobox-to-mysql-database-using-php.htm
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
20 juin 2012 à 18:43
20 juin 2012 à 18:43
provisoirement mets une trace de ce que tu reçoit en créant un petit formulaire dans ta page index.php
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.energyblue.css" type="text/css" /> <script type="text/javascript" src="../../scripts/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcombobox.js"></script> <script type="text/javascript"> $(document).ready(function () { // prepare the data var source = { datatype: "json", datafields: [ { name: 'CompanyName'}, { name: 'ContactName'}, { name: 'ContactTitle'}, { name: 'Address'}, { name: 'City'}, ], url: 'data.php' }; var dataAdapter = new $.jqx.dataAdapter(source); $("#jqxcombobox").jqxComboBox( { source: dataAdapter, theme: 'energyblue', width: 200, height: 25, selectedIndex: 0, displayMember: 'CompanyName', valueMember: 'ContactName' }); }); </script> </head> <body class='default'> <?php if(isset($_POST['envoyer'])){ echo 'Valeurs recues dans le POST: <pre>'; print_r($_POST); //la tu verra le name de ta liste echo '</pre>'; } ?> <form name="form1" method="post" action=""> <div id="jqxcombobox"></div> <input type="submit" name="envoyer" value="Envoyer" /> </form> </body> </html>:
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 09:06
21 juin 2012 à 09:06
bojour, ca me donne ca lorsque je clique sur le bouton:
Est ce que ca veut dire que j'ai recuperer la variable selectionner ou pas?? Est ce que ce ne doit pas etre la valeur selectionner qui sera afficher??
Valeurs recues dans le POST: Array ( [envoyer] => Envoyer )
Est ce que ca veut dire que j'ai recuperer la variable selectionner ou pas?? Est ce que ce ne doit pas etre la valeur selectionner qui sera afficher??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2012 à 11:55
21 juin 2012 à 11:55
je viens de tester ce script sur mon serveur wamp, même problème, je ne comprend pas comment est créee cette liste par JQ
quel name=
essayes peut être de poser la question sur le forum de JQuery ?
quel name=
essayes peut être de poser la question sur le forum de JQuery ?
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 12:19
21 juin 2012 à 12:19
daccord;
moi je pense que c'est $("#jqxcombobox").jqxComboBox qui creer le combo box et dans l'api il est dit que pour recuperer l'element selectionner si j'ai bien compris est: $("#jqxComboBox").jqxComboBox('getSelectedItem');
mais je sais plus comment affecter ce valeur recuperer vers un variable de php
moi je pense que c'est $("#jqxcombobox").jqxComboBox qui creer le combo box et dans l'api il est dit que pour recuperer l'element selectionner si j'ai bien compris est: $("#jqxComboBox").jqxComboBox('getSelectedItem');
mais je sais plus comment affecter ce valeur recuperer vers un variable de php
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2012 à 13:05
21 juin 2012 à 13:05
$("#jqxComboBox").jqxComboBox('getSelectedItem'); renvoie null
vordano
Messages postés
1682
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
316
21 juin 2012 à 13:11
21 juin 2012 à 13:11
je crois que le seul moyen de passer les paramètres du javascript vers le php, c'est par les $_GET et $_POST (vu que le php est executé coté serveur, il faut bien que les variables javascript soit envoyé au serveur pour que ça marche.
au faite, j'ai remarqué que tu faisait un include('connect.php'); et qu'ensuite tu te connectais à la base de données. tu n'aurais pas fait une double connexion par hasard ?
au faite, j'ai remarqué que tu faisait un include('connect.php'); et qu'ensuite tu te connectais à la base de données. tu n'aurais pas fait une double connexion par hasard ?
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 14:37
21 juin 2012 à 14:37
le fichier connect.php permet seulement d'enumerer le host, user et password, il n'y a pas de double connection.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2012 à 13:25
21 juin 2012 à 13:25
j'ai remarqué que tu faisait un include('connect.php'); et qu'ensuite tu te connectais à la base de données. tu n'aurais pas fait une double connexion par hasard ?
Non car connect.php ne contient que les codes de la BDD, pas d'instructions de connexion.
je crois que le seul moyen de passer les paramètres du javascript vers le php, c'est par les $_GET et $_POST
oui ça on sait ok mais comment, car apparemment lors de la génération de la liste par JQuery on n'a pas les arguments habituels du HTML notamment le name= dans la balise <select
le print_r ($_POST) nous dit qu'il n'y a que le bouton qui est posté ??
Non car connect.php ne contient que les codes de la BDD, pas d'instructions de connexion.
je crois que le seul moyen de passer les paramètres du javascript vers le php, c'est par les $_GET et $_POST
oui ça on sait ok mais comment, car apparemment lors de la génération de la liste par JQuery on n'a pas les arguments habituels du HTML notamment le name= dans la balise <select
le print_r ($_POST) nous dit qu'il n'y a que le bouton qui est posté ??
Il va falloir créer un champ type='hidden' pour transporter la valeur dans le <form/> (l'API ne semble pas le supporter par défaut ... ).
Ajout de JS :
$('#jqxcombobox').bind('select', function (event) {
var args = event.args;
var item = $('#jqxcombobox').jqxComboBox('getItem', args.index);
$('#jqxComboBox_input').value = item;
// $('#jqxComboBox_input').value = args.index;
});
Ajout dans le <form>
<input type="hidden" id="jqxComboBox_input" name="jqxComboBox_input" />
Ajout de JS :
$('#jqxcombobox').bind('select', function (event) {
var args = event.args;
var item = $('#jqxcombobox').jqxComboBox('getItem', args.index);
$('#jqxComboBox_input').value = item;
// $('#jqxComboBox_input').value = args.index;
});
Ajout dans le <form>
<input type="hidden" id="jqxComboBox_input" name="jqxComboBox_input" />
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 14:47
21 juin 2012 à 14:47
J'ai fait le meme type hidden mais comme suit:
$("#jqxcombobox").bind('select', function (event) {
if (event.args) {
var item = event.args.item;
if (item) {
var valueelement = item.value;
$("#selectionlog").children().remove();
$("#selectionlog").append('<input type="hidden" name="selection">'+valueelement+'</input>');
}// #selectionlog est le div contenant le resultat
}
puis dans le body:
<body class='default'>
<?php
if(isset($_POST['selection'])){
echo 'Valeurs recues dans le POST: <pre>';
echo $_POST['selection'];
echo '</pre>';
};
?>
Resultat: la valeur selectionnée est bien inseré dans l'input.
$("#jqxcombobox").bind('select', function (event) {
if (event.args) {
var item = event.args.item;
if (item) {
var valueelement = item.value;
$("#selectionlog").children().remove();
$("#selectionlog").append('<input type="hidden" name="selection">'+valueelement+'</input>');
}// #selectionlog est le div contenant le resultat
}
puis dans le body:
<body class='default'>
<?php
if(isset($_POST['selection'])){
echo 'Valeurs recues dans le POST: <pre>';
echo $_POST['selection'];
echo '</pre>';
};
?>
Resultat: la valeur selectionnée est bien inseré dans l'input.
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 15:26
21 juin 2012 à 15:26
on peut dire ca; :) merci
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2012 à 14:38
21 juin 2012 à 14:38
C'était mon idée aussi de passer par un champ caché, mais impossible de récupérer l'item sélectionné même avec la partie de code event que tu as donné
on a toujours:
Valeurs recues dans le POST:
Array
(
[jqxComboBox_input] =>
[envoyer] => Envoyer
)
j'ai l'impression de l'event n'est pas "capté"
on a toujours:
Valeurs recues dans le POST:
Array
(
[jqxComboBox_input] =>
[envoyer] => Envoyer
)
j'ai l'impression de l'event n'est pas "capté"
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2012 à 15:02
21 juin 2012 à 15:02
bizarre chez moi ça ne marche pas, même avec le code de InchRay
je l'ai pourtant bien mis dans la partie $(document).ready(function () {
tant mieux si tu t'en est sorti
au passage qui peut me dire l'intéret de jqxcombox sachant que l'on peut faire une liste déroulante directement avec du php et une BDD, ou même en Ajax
et un peu de CSS pour la rendre plus jolie
je l'ai pourtant bien mis dans la partie $(document).ready(function () {
tant mieux si tu t'en est sorti
au passage qui peut me dire l'intéret de jqxcombox sachant que l'on peut faire une liste déroulante directement avec du php et une BDD, ou même en Ajax
et un peu de CSS pour la rendre plus jolie
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 15:23
21 juin 2012 à 15:23
Si tu a bien visiter le site que j'ai referencer en haut, c'est deja un plugin complet avec differents theme css, l'avantage est donc de reduire le temps de developpement, et aussitu peut voir qu'on peut utiliser aussi ajax pour completer le combobox donc c'est encore mieux. :)
InchRay
Messages postés
58
Date d'inscription
vendredi 26 août 2011
Statut
Membre
Dernière intervention
17 février 2014
2
21 juin 2012 à 15:25
21 juin 2012 à 15:25
Pour ton pbm verifier bien si le name dans le input est egale a celui du$-POST dans le PHP