Php ondblclick

Résolu/Fermé
interort - 14 mars 2010 à 00:13
 interort - 15 mars 2010 à 21:02
Bonjour,

Pourriez-vous m'aider svp, car j'aimerai savoir comment faire pour que lorsque j'effectue un double clique sur une colone du tableau, que le numéro du client se retrouve dans une variable $_SESSION et que par la suite qu'il y est une redirection vers une autre page.

<table class="tabwhite" border="1">
<tr class="colone">
<td width="110">No Client</td>
<td width="130">Téléphone</td>
<td width="210">Prénom</td>
<td width="210">Nom</td>
<td width="130">Date</td>
</tr>
<tr ondblclick="<?php $_SESSION['noclient']=$_POST['noclient']; header("Location: test.php");?>">
<td>13851</td>
<td>4189523386</td>
<td>Marie-Christine</td>
<td>Claude-Robert</td>
<td>13/12/2008</td>
</tr>
</table>

merci
A voir également:

17 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
14 mars 2010 à 22:48
Je ne vois pas pourquoi tu souhaites utiliser les variables de sessions. Ces variables servent à conserver des données pendant toute une visite (session), jusqu'au temps où le navigateur est fermé.

Voici ce à quoi doit ressembler ta balise tr :
<tr ondblclick="document.location.href = 'editer-client.php?id=' + this.getElementsByTagName('td')[0].firstChild.nodeValue;">
Et sur ta page editer-client.php, tu auras la variable $_GET['id'] qui contient l'id du client.
2
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
Modifié par avion-f16 le 14/03/2010 à 18:23
"dans une variable $noclient"
Il n'y a plus de PHP une fois la page envoyée au navigateur !!

<tr ondblclick="document.location.href = 'page.php?noclient=' + this.getElementsByTagName('td')[0].firstChild.nodeValue;">


Et sur "page.php" :
<?php   
session_start();   
$_SESSION['noclient'] = $_GET['noclient'];   
header('Location: liste-clients.php');   
?>

Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
1
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
15 mars 2010 à 17:57
C'est simple.

Au double clique (dblclick), on fait une redirection Javascript avec "document.location.href = cible".
Ici, cible est "this.getElementsByTagName('td')[0].firstChild.nodeValue".
this représente la balise <tr> elle-même. getElementsByTagName('td')[0] va réprésenter la première balise td contenu dans "this" (balise tr). Ensuite, avec "firstChild.nodeValue", nous récupérons le contenu de cette balise.
DOM est extraordinaire, je trouve !
1
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
14 mars 2010 à 10:11
Salut,

Jamais vu l'option ondblclick, mais je pense que ça ne va pas comme ça ...
Tu ne peux pas mettre du PHP dans une page html ... le PHP sera exécuté lors de la création de la page, et renvoyé en static au navigateur. D'ailleurs, je suppose qu'il te dit qu'il y a un problème de header ... non ?

Ce que tu pourrait faire, c'est envoyer le formulaire à une page PHP qui t'enregistre ta variable, et qui te renvoye ensuite à ta page de clients.

<form action="test.php" method="post" id="form1">
<input type=hidden id="noclient" />

<table class="tabwhite" border="1"> 
<tr class="colone"> 
<td width="110">No Client</td> 
<td width="130">Téléphone</td> 
<td width="210">Prénom</td> 
<td width="210">Nom</td> 
<td width="130">Date</td> 
</tr> 
<tr ondblclick="javascript:form1.elementbyid('noclient').value='13851'; form.submit();"> 
<td>13851</td> 
<td>4189523386</td> 
<td>Marie-Christine</td> 
<td>Claude-Robert</td> 
<td>13/12/2008</td> 
</tr> 
</table>

</form>


Et ta page d'enregistrement :
<?php $_SESSION['noclient']=$_POST['noclient']; header("Location: test.php");?


J'ai pas du tout vérifié le code rajouter, mais l'idée est là. Essaye de voir ça :D

@Bientôt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai besoin que la variable no client se retrouve dans $_SESSION['noclient']. Donc, je pense que cela pourrais p-t marché:

<?php
$_SESSION['noclient']=javascript:form1.elementbyid('noclient');
header("Location: test.php");
?>

Mais comme je n'y connai rien en javascript, j'aurai besoin de quelque explication si tu le veux bien.

<tr ondblclick="javascript:form1.elementbyid('noclient').value='13851'; form.submit();">

De plus, 13851 sera une variable en php. Par exemple $noclient , qui sera dans une boucle afin d'afficher tout les client dans un tableau et donc en dooublecliquant sur la colone x, on devra récup le numéro du client.

merci
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
14 mars 2010 à 17:53
Arrête de confondre ce qui se passe sur le serveur avec ce qui se passe sur le navigateur !
Le PHP et le Javascript n'ont aucun lien !
0
avion-f16 si t'a une solution pour que je récupere le numéro du client dans la variable $_SESSION['noclient'], je suis ouvert.
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
14 mars 2010 à 18:09
Il est où le numéro du client ?
Dans un formulaire ?
0
le numéro est 13851 dans une variable $noclient dans un tableau.
0
Si j'ai bien comprit, voici se que tu me sugere:

<?php
session_start();
$_SESSION['noclient'] = $_GET['noclient'];
header('Location: liste-clients.php');
?>

<head>
<title>Statistique</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="/doc_pc/css/doc_pc.css" />
</head>
<body>

<table class="tabwhite" border="1">
<tr class="colone" ondblclick="ondblclick="javascript:form1.elementbyid('noclient').value='13851'">
<td width="110">No Client</td>
<td width="130">Téléphone</td>
<td width="210">Prénom</td>
<td width="210">Nom</td>
<td width="130">Date</td>
</tr>
<?php $bd=mysqli_connect("localhost","root","","travail");
$result=mysqli_query($bd, "Select Id_Client, No_Tel_Client, Prenom_Client, Nom_Client, Date from client");
while ($ligne=mysqli_fetch_assoc($result)){
echo "<tr ondblclick="document.location.href = 'page.php?noclient=' + this.getElementsByTagName('td')[0].firstChild.nodeValue;">";
echo "<td>".$ligne['Id_Client']."</td>";
echo "<td>".$ligne['No_Tel_Client']."</td>";
echo "<td>".$ligne['Prenom_Client']."</td>";
echo "<td>".$ligne['Nom_Client']."</td>";
echo "<td>".$ligne['Date']."</td>";
echo "</tr>";
}?>
</table>
</body>

et sur ma page liste-clients.php'
je pourrais faire un echo $_SESSION['noclient']
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
14 mars 2010 à 18:52
Non !
Le code PHP est dans une page à part (dans l'exemple que je t'ai donné : page.php)
Et la page "liste-clients.php" est la page contenant ton tableau.
0
Sauf que comme je l'ai indiqué au début, j'ai besoin de listé tout les enregistrements dans un tableau pour ensuite lorsque je double clique sur une colonne, que cela me conduise a une autre page avec la variable $_SESSION['noclient'] pour affiché les données concernant le client voulu dans un formulaire et ainsi pouvoir les modifer au besoin.

De plus, j'ai pas trop comprit avec se que tu me sugere comment la variable $_SESSION['noclient'] se retrouve dans le tableau.
0
S'était pas extremement clair sur mon premier post j'avoue, en plus j'y avais pas mis tout le code l'effet qu'il n'avais pas encore été ecrit.
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
14 mars 2010 à 19:57
Et ce n'est toujours pas clair.
Donc tu aimerais bien, si j'ai bien compris, afficher comme le profil du client quand on clique sur sa ligne ?
Si oui, alors que vient faire l'histoire des sessions ?
0
non, lorsque la page se charge comme indiqué par mon dernier code poster, je veux que la liste des clients s'affiche dans la fenêtre avec quelque détail. Par la suite, une fois la page charger, que je puisse doublecliquer sur une ligne (<tr>) concernant par exemple le client xyz et ou le numéro du client xyz sera inscrite dans la variable session et une fois fait, qu'une nouvelle page soit chargé (header) ou il y aurai d'affiché toute les info du client dans un formulaire a l'aide de la variable session afin de pouvoir par exemple mettre a jour les informations du client. Par exemple un changement d'adresse.
0
Quand la page se charge, la liste des clients s'affiche dans la page. Une fois lister, on la consulte pour trouver le client xyz. On double clique sur la ligne du client xyz et le no du client se place dans la variable session et par la suite nous redirige (header) vers une nouvelle page affichant les détails du client dans un formulaire à l'aide de la variable session qui permet de retrouver les info dans la bdd et par la suite cela permet de par exemple changer l'adresse et de mettre a jour les informations.
0
Sa fonctionne.

Tu peu m'expliquer un peu histoire que je comprenne stp, car meme si sa marche, ses toujours plus utili de comprendre.

Merci
0
Merci pour ses explications. Je n'ai pas tout comprit a la première lecture, mais je vais faire des recherches grace a l'ami google. Fodrai que je prenne le temps d'étudier le javascript, sa me serait fort utile, mais malheureusement le temps joue contre moi :(

Merci encore
0