Page 1 sur 2

Onclick sur PHP

Posté : 29 nov. 2012, 15:32
par Ascari
Bonjour à tous,

j'ai besoin de votre aide, en gros je fais un systeme de "ticket boucherie" (ou seulement 10 tickets sont disponible en même temps).
je selection donc le ticket si son statut est "open" et affiche tous les dispo.

Code : Tout sélectionner

$sql = "SELECT id,Statut,langue FROM users WHERE langue='FR' and Statut='Open'";
J'aimerais que lorsque la personne clique sur le lien, mon code verifie que ce ticket est toujours Open et si oui redirige la personne sur la page pause.php et change dans ma base SQL le statut en Close.

Code : Tout sélectionner

while($data = mysql_fetch_assoc($req)) { echo '<center>'; echo '<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>'; echo '</center>'; }
J'ai essayé avec du Javascript mais je n'arrive pas du tout erreur sur erreur et je deviens fou (+ que d'habitude).

Merci d'avance pour votre aide

Re: Onclick sur PHP

Posté : 29 nov. 2012, 16:15
par xTG
Avant de faire du javascript peut être qu'un simple lien appelant une page PHP t'aiderai à mieux comprendre.

Car là je vois une boucle avec toujours le même code...
Si tu n'as pas de différentiation possible (ou qu'un seul enregistrement) alors rien ne sert d'utiliser une boucle.
Et sinon il faut dans ce cas passer dans le lien la clé primaire ciblant l'enregistrement pour pouvoir dans pausefr.php le traiter.

Re: Onclick sur PHP

Posté : 29 nov. 2012, 16:33
par juliette
Je pense que xTG cherche a te dire que si tu as 10 tickets, le html généré sera celui-ci:
<center>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
</center>
Que fait cette page pausefr.php ?

Re: Onclick sur PHP

Posté : 29 nov. 2012, 16:44
par Ascari
La page pausefr.php ne fait rien de spéciale.

Elle donne juste accés à des informations html.

Donc si je comprends il faudrait

<a href="pausefr.php&id1"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php&id2"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
<a href="pausefr.php&id3"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>

Re: Onclick sur PHP

Posté : 29 nov. 2012, 17:53
par juliette
'aimerais que lorsque la personne clique sur le lien, mon code verifie que ce ticket est toujours Open et si oui redirige la personne sur la page pause.php et change dans ma base SQL le statut en Close.
Alors je ne comprend plus trop, a mon avis c'est ta page pausefr.php qui devrait faire la modif en bdd...
peux tu quand même faire voir ce qu'il y a dedans ?

Re: Onclick sur PHP

Posté : 29 nov. 2012, 18:47
par Ascari
Mais je pense que ma logique est mauvaise.

Pour le moment il n'y a rien dans le pausefr.php, je pense fonctionner autrement :

donc dans mon while récuperer l'id du "ticket" pour le lien

Code : Tout sélectionner

while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours // echo '<b>'.$data['id'].' '.$data['Statut'].'</b> ('.$data['langue'].')' ; echo '<center>'; echo '<a href="pausefr.php?id=".$id[id]"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>'; echo '</center>'; }
et sur la page pausefr.php avoir mes conditions

si open update en close
si déjà en close revenir sur la page de selection pour faire un autre choix.

Que penses tu de cela ?

Le code de la page selection sur laquel je cherches comment recuperer l'id pour le lien.

Code : Tout sélectionner

<?PHP include ('config.inc.php'); ?> <center> Les ticket FR disponibles : <br><br> </center> <?PHP $sql = "SELECT id,Statut,langue FROM users WHERE langue='FR' and Statut='Open'"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours // echo '<b>'.$data['id'].' '.$data['Statut'].'</b> ('.$data['langue'].')' ; echo '<center>'; echo '<a href="pausefr.php?id=".$id[id]"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>'; echo '</center>'; } ?>

Re: Onclick sur PHP

Posté : 29 nov. 2012, 18:53
par juliette
A quoi doit servir le lien, a voir le ticket ou a changer son statut ?

Re: Onclick sur PHP

Posté : 29 nov. 2012, 19:13
par Ascari
Il sert a voir le contenu, mais comme un nombre limité de personne ont accés en même temps il devra donc aussi changer de statut.

Re: Onclick sur PHP

Posté : 29 nov. 2012, 19:23
par juliette
Alors si il sert aussi a changer de status, il te faut 2 boutons, 1 pour voir le tickets et 1 pour le modifier car un unique bouton ne peut pas avoir 2 actions...

Re: Onclick sur PHP

Posté : 29 nov. 2012, 19:30
par juliette
EX:
echo '<a href="pausefr.php?id='.$id[id].'&action=affiche"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
              <a href="pausefr.php?id='.$id[id].'&action=supprime"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>
            ';
regarde, j'ai mis une action, tu test l'action et tu fait réagir ton script en fonction de l'action passer pour un id precis...

EDIT: et cela doit se faire dans pausefr.php

Re: Onclick sur PHP

Posté : 29 nov. 2012, 19:52
par Ascari
je vais essayer cela merci :)

Re: Onclick sur PHP

Posté : 29 nov. 2012, 23:14
par Ascari
Me revoici apres les testes.

Je commence a obtenir des résultats correctes.
J'ai encore un petit souci.

Lorsque tous mes 10 tickets sont en statut open aucun problème.
Si par exemple le ticket 1 est en statut Close, j'ai bien que 9 lien disponibles donc correcte mais le premier n'est pas utilisable les 8 autres oui.
Je sais pas si je suis clair :s

Aurais je fait une erreur dans ma déclaration de variable qui me sert de GET ?

$idticket="1";
...
while($data = mysql_fetch_assoc($req))
{
echo '<a href="pausefr.php?id='. "$idticket".'">link</a>' ;
$idticket++;
}

Encore merci :D

Mon code pour la page d'affichage des tickets et leur selection.

Code : Tout sélectionner

<?PHP include ('config.inc.php'); ?> <center> Les ticket FR disponibles : <br><br> </center> <?PHP $idticket="1"; $sql = "SELECT id,Statut,langue FROM users WHERE langue='FR' and Statut='Open'"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours //echo '<b>'.$data['id'].' '.$data['Statut'].'</b> ('.$data['langue'].')'.'<br>'; echo '<a href="pausefr.php?id='. "$idticket" .'">link</a>' ; echo '<center>'; //echo '<a href="pausefr.php?id=".$id[id]"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>'; echo '</center>'; $idticket++; } ?>
Celui qui teste si le ticket est bien Open avant de rediriger vers le ticket

Code : Tout sélectionner

<?PHP include ('config.inc.php'); ?> Le ticket est le <?php echo $_GET["id"]; $sql = "SELECT id,Statut,langue FROM users WHERE id=$_GET[id] "; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { echo '<b>'.$data['id'].' '.$data['Statut'].'</b> ('.$data['langue'].')'.'<br>'; $ticketstat=$data['Statut']; } if($ticketstat =="Open") { echo 'Ce break pass est diponible bon break'; mysql_query("UPDATE users SET Statut='Close' WHERE id=$_GET[id]"); header('Location: leticket.php'); } //Sinon else { echo 'Ticket déjà utilisé teste ! '; } ?>
LE Ticket en lui meme pour le moment vide

Re: Onclick sur PHP

Posté : 30 nov. 2012, 00:33
par juliette
je sais pas trop pourquoi le 1er uniquement mais deja, il y a un soucis dans cette ligne:
//echo '<a href="pausefr.php?id=".$id[id]"><img src="pause.jpg" BORDER="0" alt="Pause" WIDTH=95 HEIGHT=95></a>'; 
la concaténation n'est pas correct !

Re: Onclick sur PHP

Posté : 30 nov. 2012, 00:35
par juliette
même chose sur cette ligne:
echo '<b>'.$data['id'].' '.$data['Statut'].'</b> ('.$data['langue'].')'.'<br>';

Re: Onclick sur PHP

Posté : 30 nov. 2012, 07:49
par Ascari
Je ne comprends pas ces deux lignes sont en commentaire. :shock: