Affectation d'un variable javascript a un vri
Résolu
InchRay
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
InchRay Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
InchRay Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'utilise actuellement un bibliotheque jquery jqwidgets. Celui ci permet nottament de faire un combobox(liste deroulante) a partir de données mysql.J'aimerai bien savoir comment recuperer l'element selectionné dans ce combobox et l'affecter dans un variable php pour une utilisation plus tard.
j'utilise actuellement un bibliotheque jquery jqwidgets. Celui ci permet nottament de faire un combobox(liste deroulante) a partir de données mysql.J'aimerai bien savoir comment recuperer l'element selectionné dans ce combobox et l'affecter dans un variable php pour une utilisation plus tard.
A voir également:
- Affectation d'un variable javascript a un vri
- Telecharger javascript - Télécharger - Langages
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
- 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
- A javascript error occurred in the main process - Forum Windows
12 réponses
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'];
}
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
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>:
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
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 ?
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
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 ?
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" />
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.
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é"
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