Php ondblclick

Résolu
interort -  
 interort -
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
"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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Contributeur Dernière intervention   160
 
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
interort
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
interort
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il est où le numéro du client ?
Dans un formulaire ?
0
interort
 
le numéro est 13851 dans une variable $noclient dans un tableau.
0
interort
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
interort
 
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
interort
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
interort
 
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
interort
 
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
interort
 
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
interort
 
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