bonsoir a tous.
j'utilise du jquery pour recuperer l'id d'un element dans une liste de plusieur element(l'id des elemets est l'id de la base de donnee)

<h2 id="<?php echo $recup['id_sc'] ?>" class="clickici"><?php echo $recup['nom'] ?> </h2>

<script>
    $(document).ready(function(){
        $('.clickici').click(function(){
            var id = this.id;   
        });
    });
    </script>

j'aimerai recuper en php la valeu de l'id apres le click.

22 réponses


Salut,

Qu'est-ce que MySQL vient faire là dedans ? Et puis tu ne cherches pas à "Obtenir une variable jquery en mysql", mais plutôt de récupérer l'ID d'un élément après l'avoir récupéré via MySQL et injecté dans le DOM.

Un début de piste:

<h2 id="<?= $recup['id_sc'] ?>" class="clickici"><?= $recup['nom'] ?></h2>
<script>
    $(document).ready(function() {
        $('.clickici').on('click', function() {
            var id = $(this).attr('id');
        });
    });
</script>

Tu peux aussi le faire en vanilla JS (ce qui est plus "propre", mais c'est mon avis perso).

J'espère que ça t'aura aider, et fais attention aux termes que tu emploies ;)

Merci pour la reponse,
Je veux au faite recuperer l'id de l'element clicke affin de retrouver dans la base de donne dans une autre table des elements qui lui sont relies . j'ai utiliser le jquery juste pour recupere l'id sans recharge de la page . mais la je sais plu trop comment continuer avec le php(je sais que le ajax devrai faire l'affaire mais dans l'exo je ne doit pas l'utiliser)

À moins d'utiliser un formulaire (POST, GET) ou un lien en passant des paramêtres en GET, tu ne peux pas faire autrement en PHP.
Tu n'as donc que ses deux solutions.
Par contre, l'attribut id d'un élément HTML, ça s'utilise comme sélecteur pour le Javascript ou le CSS (tout comme pour l'attribut class), ce n'est pas vraiment fait pour récupérer la valeur de l'attribut et la traiter par la suite.

je me suis surement mal faire comprendre. j'appel utilisation d'ajax la methode suvante :

function check_id{
                            $.ajax({
                                type: "post",
                                url:  "recherche.php",
                                data: {
                                    'id_elem' : $(".clickici").val()
                                },
                                success: function(data){
                                            if(data == "success"){
                                                $("#main").html('le resulta');
                                                return true;
                                            } else {
                                                $("#erreur").css("color", "red").html(data);
                                            }
                                         }
                            });
                    }

CE que tu devrais faire c'est passer en paramère de ta fonction l'id à chercher

function check_id(id){
                            $.ajax({
                                type: "post",
                                url:  "recherche.php",
                                data: {
                                    'id_elem' : id
                                },
                                success: function(data){
                                            if(data == "success"){
                                                $("#main").html('le resulta');
                                                return true;
                                            } else {
                                                $("#erreur").css("color", "red").html(data);
                                            }
                                         }
                            });
                    }

Comme cela tu pourras l'utiliser ensuite

    $(document).ready(function(){
        $('.clickici').click(function(){
            check_id( $(this).attr('id') );   
        });
    });

@Kevin Kombetto quelles sont les contraintes du projet ? Tu ne dois pas utiliser l'AJAX ou juste ne pas utiliser la fonction $.ajax() de jQuery ?

CE que tu devrais faire c'est passer en paramère de ta fonction l'id à chercher

En fait non, d'après ce qu'il dit, il ne doit pas transmettre les données du formulaire via javascript.

@Lartak, +1
je suis en russie depuis 6 ans . je constates que j'ai perdu le sans d'espression a force de ne parler que russe ((
je vais y travailler pour mieux vous faciliter la tache en cas de demande d'aide. De plus je fais mes premier pas dans la programmation.

Donc tu devras utiliser un formulaire pour envoyer tes données :)

Salut a tous !
Encore un souci, j'ai besoin de recupperer une variable dans un champ sans avoir a clicer sur le bouton du formulaire.

function recuperation_info_plat_choisi(){
    $results = array();
    $query  = mysql_query("SELECT * FROM produits WHERE  nom='$nom_recuperer'
    ");
    while($row = mysql_fetch_assoc($query))
    {
        $results[] = $row;
    }
        return $results;
        }

la varible $nom_recuperer se trouve dans un input ; est il possible de la recuperer sans avoir a soumettre le formulaire?
si oui comment? j'ai esseye avec

if(!empty($_POST['name du champ'])){ 
    $nom_recuperer = $_POST['name du champ'];
    } 

mais ca passe passe puisque le formulair n'est pas soumis.
Avec jquery je sais pas comment obtenir $nom_recuperer

Salut,

En JS, avec jQuery:

var nom = $('[name="name_du_champ"]', '#id_du_form').val();

ca marche pas. j'ai du loupe un truc

<script>
            $('.clickici').click(function()){
            var  $nom_recuperer = $('[name="plat"]', '#id_form').val();
            }
                        <?php   
                        echo  $nom_recuperer;
                         ?>
            </script>

j'ai besoin de recupperer une variable dans un champ sans avoir a clicer sur le bouton du formulaire.

Tu dis ne pas avoir besoin de cliquer pour récupérer la valeur de l'input, mais tu définies la variable dans un événement sur clic, c'est donc normal.
Et puis, remplaces id_form par le véritable nom d'id de ton formulaire.

Oui et puis au delà de ça, fais gaffe à tes fermetures de parenthèses de la fonction jQuery click(), car là c'est sur que ça ne va pas marcher ;)

Lartak le clic dont il sagit ici est celui de l'element a partie du quel on je veux avoir l'id; le click que je ne veux pas effectuer est contenu dans un formulaire où se trouve le champs qui recoit l'id.
J'ai corrige l'enplacement de la fermertur de la parenthese le click(), et ca marche. la valeur du champ est recuperee. le php dans le script ne marche pas! quand je le sort du script il met ( Undefined variable: nom_recuperer )

<script>
            $('.clickici').click(function(){
            var  $nom_recuperer = $('[name="plat"]', '#id_form').val();
                        <?php   
                        echo  $nom_recuperer;
                         ?>
                         });
            </script>

ou

<script>
            $('.clickici').click(function(){
            var  $nom_recuperer = $('[name="plat"]', '#id_form').val();
                });      
                     <?php   
                        echo  $nom_recuperer;
                         ?>

            </script>

j'ai besoin de $nom_recupere de pour ce code suivant

function recuperation_info_plat_choisi(){
    $results = array();
    $query  = mysql_query("SELECT * FROM produits WHERE  nom='$nom_recuperer'
    ");
    while($row = mysql_fetch_assoc($query))
    {
        $results[] = $row;
    }
        return $results;
        }

Evidemment ! Tu mets un echo en plein milieu d'un script JS, tu t'attends à quoi ? Qu'il va deviner ce qu'il doit faire de la variable ? ^^

comment alore relier ces deux codes ?

Je ne comprends vraiment pas ce que tu cherches à faire...
Si tu cherches à faire communiquer JS et PHP sur la même page et sans passer par AJAX ni recharger, ça n'est pas possible.

Il me semble qu'il te manque une notion assez simple mais capitale !

Dans le cadre de ton projet tu as du code PHP et du code HTML/JS.
Le code PHP s'éxécute sur ton serveur (ta machine physique qui héberge ton site web), et le HTML/JS s'éxécute chez ton client (Mr tous le monde), donc il ne sont pas éxécuter dans le même environnement, ils sont cloisonnés.

Afin de pouvoir décloisonner le HTML/JS et le PHP il te faut passer par un appel AJAX ou via les formulaires

Donc je t'encourage à regarder attentivement ce cours https://openclassrooms.com/courses/un-chat-en-php-ajax qui t'apprend la communication HTML-JS avec PHP

Cordialement thehawk_

@thehawk_ +1

Merci les gas. En metant le ajax j'ai pu faire la lieson. ca marche comme sur des rouletes. J'ai reuci a resoudre l'exo. Merci a tous.

De rien, pense à passer le sujet en résolu ;)