Page 1 sur 2
Transmettre une donnee via un lien
Posté : 26 juil. 2011, 19:08
par rimie
Bonjour,
J'ai un lien sur ma page valider.html du type:
SELECT id FROM table LIMIT 5;
echo '<form class="rtdisplay" method="POST" action="#">';
foreach() {
echo '<a href="valider.html#" class="rtdisplay">vas-y</a>';
}
echo '</form>';
donc je recois par exemple 2 fois vas-y si un resultat est 2.
comment transmettre l'id du lien selectionne vers une autre page en utilisant jquery, sachant que je veux pas mettre un lien du type valider.html?id=1
merci
Re: Transmettre une donnee via un lien
Posté : 27 juil. 2011, 03:50
par devlop78
Pourquoi tu veux pas ? Sinon, dans l'idée :
SELECT id FROM table LIMIT 5;
echo '<form class="rtdisplay" method="POST" action="#" id="subb">';
echo '<input type="hidden" name="id" value="" />
foreach() {
echo '<a href="valider.html#" class="rtdisplay" onclick="sub(1 ou 2); return false;">vas-y</a>';
}
echo '</form>';
<script>
function sub (id)
{
var f= $("#subb");
f.children('hidden').val(id);
f.submit();
}
</script>
Re: Transmettre une donnee via un lien
Posté : 27 juil. 2011, 11:47
par rimie
merci, puisque c'est dans foreach je dois avoir un sub different pour chaque lien
Re: Transmettre une donnee via un lien
Posté : 27 juil. 2011, 12:02
par rimie
j'ai mis un input type radio.
je voudrais lancer une requete suivant la valeur recuperee en jQuery:
<script type="javascript">
// code
if(data == 1)
{
$('.display').show();
}
if(data == 2)
{
$('.display2').show();
}
</script>
echo '<input type="radio" name="ri" class="ri" value="'.$ri_type.'">';
ri_type serait un chiffre de 0 a 9, et je fais une condition avec data, est ce qu'il une methode de lancer une requete a partir du resultat de data, je m'explique, au lieu de mettre un display et display2, je vais mettre un seul display, et lancer ma requete:
SELECT * FROM table WHERE champs = data
au lieu de lancer la requete:
SELECT * FROM table WHERE champs = 0
SELECT * FROM table WHERE champs = 1
...
SELECT * FROM table WHERE champs = 9
comme ca suivant le chiffre recupere de data je peux lancer ma requete et afficher le contenu
merci
Re: Transmettre une donnee via un lien
Posté : 28 juil. 2011, 02:58
par devlop78
Regarde du côté d'AJAX. J'ai peut-être tord, mais tu as l'air motivé, mais tu brules un peu les étapes. Tu veux trop en faire j'ai l'impression.
Je te conseille de lire quelques tutos sur le site du zéro par exemple, de regarder du côté developpez.com et d'essayer un peu par toi-même avant de poster sur le forum. Je te conseille aussi Firebug pour Firefox qui permet d'inspecter le DOM et pas mal d'autres choses. Il y a pas mal de ressources qui permettent de tester les choses. Et surtout, j'insiste : les tutos.
Bonne chance.
Re: Transmettre une donnee via un lien
Posté : 28 juil. 2011, 13:44
par rimie
je pense pas qu'il y ait une methode pour passer des truc jQuery vers php
Re: Transmettre une donnee via un lien
Posté : 29 juil. 2011, 02:50
par devlop78
Les technologies actuelles permettent de "tout" faire. Il faut juste les apprendre et les mettre en place.
Re: Transmettre une donnee via un lien
Posté : 30 juil. 2011, 08:28
par rimie
Les technologies actuelles permettent de "tout" faire. Il faut juste les apprendre et les mettre en place.
merci
Re: Transmettre une donnee via un lien
Posté : 31 juil. 2011, 14:28
par rimie
est ce que vous pouvez me guider sur le bon chemin?
Re: Transmettre une donnee via un lien
Posté : 31 juil. 2011, 22:52
par Cyrano
je pense pas qu'il y ait une methode pour passer des truc jQuery vers php
Salut Rimie,
tu mélanges deux choses bien distinctes. Jquery, donc du JavaScript, s'exécute sur la machine cliente, c'est intégré au navigateur. Le PHP pour sa part est exécuté coté serveur : la communication entre les deux est impossible directement puisque les deux s'exécutent à des moments différents. En revanche, il est toujours possible de transmettre vers le serveur des informations créées coté client avec du JavaScript en envoyant des paramètres via l'url de la requête HTTP qui sera appelée depuis la page en cours d'affichage. Tu pourrais aussi communiquer via les coockies, on peut faire faire en quelque sorte « coockie commun » entre PHP et JavaScript. Et sinon il reste aussi Ajax qui permet d'envoyer une requête HTTP vers le serveur pendant l'affichage de la page sans recharger celle-ci auquel cas tu peux envoyer les données avec la méthode GET ou la méthode POST au choix selon la complexité des données à envoyer, et tu peux pour ça ajouter une couche qui faciliterait la communication en utilisant le JSON (JavaScript Object Notation) que peut très bien interpréter PHP comme d'autres langages d'ailleurs.
Le chemin à suivre dépend donc de ce que tu veux faire et selon quels critères. TU mentionnes les boucles sous-entendant par là qu'il y aurait plusieurs liens à traiter... mais j'ai plus de mal à comprendre l'intérêt d'utiliser des liens dans un formulaire au lieu d'utiliser les fonctionnalités disponibles avec les formulaires HTML. Si au lieu d'une ancre ( <a> ) tu utilisais un bouton de formulaire ( <input type="button" />), lors du click, ça pourrait envoyer le formulaire et ton bouton pourrait avoir un gestionnaire d'évènement alimentant la valeur d'un champ caché lors du clic juste avant l'envoi du formulaire.
Analyse un peu ce qui se passe lorsque tu envoies un formulaire : qu'est-ce que reçoit le serveur ? S'il y a des boutons radio, quelle est leur particularité et qu'est-ce que va recevoir le serveur lors de la soumission du formulaire ? Et pourquoi ? Pareil pour des cases à cocher du reste...
Comme dit
devlop78, tu as l'air de vouloir brûler les étapes avant d'avoir compris certains principes fondamentaux...

Re: Transmettre une donnee via un lien
Posté : 01 août 2011, 02:02
par rimie
merci Cyrano pour l'explication, l'idee est de transmettre une valeur d'un radio en utilisant jQuery vers une page php, si c'est bon on recoit une reponse success, cette reponse aura comme valeur celle du radio, que je veux ulterieurement utiliser pour etablir mes requetes, par exemple:
<input type="radio" name="nom" value="1"> <br />
<input type="radio" name="nom" value="2"> <br />
<input type="radio" name="nom" value="3"> <br />
<input type="radio" name="nom" value="4"> <br />
lors du choix par exemple de "1", cette valeur serait transmis vers reponse.php, donc la valeur serait "1", en se basant sur la reponse on va construire une requete du type:
SELECT * FROM table WHERE champs = data
sachant que data est la valeur du radio (qui est 1)
Re: Transmettre une donnee via un lien
Posté : 01 août 2011, 06:38
par Cyrano
Ok jusque là : maintenant, coté serveur, ce sera reçu sous quelle forme ? Prenons la manière classique, tu sélectionne ton option et tu cliques sur le bouton d'envoi du formulaire, que va recevoir ton code reponse.php ?
Re: Transmettre une donnee via un lien
Posté : 01 août 2011, 08:50
par rimie
Ok jusque là : maintenant, coté serveur, ce sera reçu sous quelle forme ? Prenons la manière classique, tu sélectionne ton option et tu cliques sur le bouton d'envoi du formulaire, que va recevoir ton code reponse.php ?
$nom = $_POST['nom'];
echo $nom;
la reponse serait soit: 1, 2, 3 ou 4
Re: Transmettre une donnee via un lien
Posté : 01 août 2011, 09:04
par Cyrano
Voila : tu reçois la donnée dans la super-globale $_POST, c'est ça qu'il est important de considérer. Et si aucun bouton radio n'est coché, tu ne recevras rien du tout.
Tu peux donc mettre en place d'abord une vérification que tu as bien reçu quelque chose, ensuite en fonction du résultat retourner un message d'erreur ou bien exploiter la donnée reçue pour construire ta requête SQL.
Traduit autrement, tu ne reçois rien « en Jquery », ce qui ne veut pas dire grand chose. Jquery n'est là que pour rendre l'ergonomie plus fluide. Les échanges entre client et serveur passent par le protocole HTTP qui transporte les informations dans un sens ou dans l'autre et la machine qui reçoit ces informations effectue alors les traitements appropriés. Coté serveur, c'est à toi de définir quel traitement doit être exécuté en fonction des informations alors que coté client, ce qui est reçu est du code client, le navigateur l'interprète et va l'afficher, mais tu construis ce qui est envoyé au navigateur en code client pour obtenir le rendu visuel souhaité et éventuellement les traitements et fonctionnalités dynamiques voulues en mettant, outre du HTML et des CSS, le code JavaScript nécessaire. Mais en résumé, il faut bien garder à l'esprit que tout ceci se passe à des moments différents : lorsque le serveur a fini de traiter et d'envoyer les données vers le client, il ne fait plus rien qu'attendre la prochaine requête HTTP de la part du client.
Je te suggère donc maintenant de reposer à plat ton problème de base : tu as une page avec un formulaire, tu veux effectuer quoi à partir des informations saisies ou sélectionnées dans ce formulaire ? Coté serveur, tu as besoin de quoi pour effectuer le traitement approprié pour pouvoir construire la page suivante avec le résultat ? Et surtout, quels sont les cas de figures possibles à partir de ton formulaire, ou encore, qu'est-ce qui serait possible d'obtenir ou non du formulaire et quelles en seraient les conséquences ?
Re: Transmettre une donnee via un lien
Posté : 01 août 2011, 09:33
par rimie
$nom = $_POST['nom'];
if($nom == '')
{
echo 'erreur';
}
else
{
echo $nom;
}
alors la, la valeur qui serait transmis de reponse.php vers index.php en jQuery serait par exemple (1), je la recupere en data:
success: function(data) {
if(data != 'erreur')
{
// traitement ici
}
</script>
<?php
// ici je vais mettre ma requete suivant la valeur du data recu, par exemple:
SELECT * FROM table WHERE nom = $data;
?>