Appel d'une fonction PHP sur un onClick ?

bibe83
Invité n'ayant pas de compte PHPfrance

07 nov. 2007, 02:15

Bonsoir,
j'essai d'appeler une fonction PHP sur un évènement onClick sur un lien HREF, le problème c'est que je crois que ça marche pas bien, la fonction s'execute au chargement de la page sans que je clic sur aucun lien...
for($y = 0; $y <= count($track_list['tracks']); $y++){
    if ($y == 0) echo '<table>';
    if ($y < count($track_list['tracks'])){
          echo '<tr><td><b>$date_jour'</b></td>';
          echo '<td><b>-- <a href='.$track_list['tracks'][$y].' [b]onClick='.MajUser($search_num).'[/b]>'.convert($track_list['tracks'][$y]).'</a></td>';
          echo '<td>'.$track_list['times'][$y].'</b></td></tr>';
    }

    if ($y == count($track_list['tracks'])-1){
    	echo '<tr><td><b>$date_jour</b></td>';
    	echo '<td><b>-- xxxx -- </b></td></tr>';
    	echo '</table>';
    }
}
Si quelqu'un peut me dire que je fais nawak, je veux bien ses conseils...

Mammouth du PHP | 19672 Messages

07 nov. 2007, 07:47

Logique, tu mélanges un langage client (évènement JavaScript) et un langage serveur (PHP). Or dans la construction de ton bout de page, l'appel à la fonction PHP n'est pas envoyé tel-quel mais interprété directement avant envoi de la page vers le navigateur.

Si tu veux faire ça, il va falloir modifier le fonctionnement et envisager dans ton onclick un appel à une fonction JavaScript avec un peu d'AJAX pour appeler la fonction PHP coté serveur depuis la page qui elle est coté client.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 nov. 2007, 12:03

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2007, 18:03

Alternativement, si tu souhaites exécuter cette fonction et réafficher la page après clic sur le lien tu peux faire :
if (isset($_GET['run']) && $_GET['run'] == 1)
{

for($y = 0; $y <= count($track_list['tracks']); $y++){
    if ($y == 0) echo '<table>';
    if ($y < count($track_list['tracks'])){
          echo '<tr><td><b>$date_jour'</b></td>';
          echo '<td><b>-- <a href='.$track_list['tracks'][$y].' [b]onClick='.MajUser($search_num).'[/b]>'.convert($track_list['tracks'][$y]).'</a></td>';
          echo '<td>'.$track_list['times'][$y].'</b></td></tr>';
    }

    if ($y == count($track_list['tracks'])-1){
        echo '<tr><td><b>$date_jour</b></td>';
        echo '<td><b>-- xxxx -- </b></td></tr>';
        echo '</table>';
    }
} 


}

partie HTML

Code : Tout sélectionner

<a href="?run=1" >Cliquer pour lancer la fonction</a>

bibe83
Invité n'ayant pas de compte PHPfrance

09 nov. 2007, 23:40

Monsieur AB c'est la fonction "MajUser($search_num)" qui est en PHP que je souhaite exécuter en cliquant sur le lien qui la contient et non un lien autre qui exécutera tout le code que j'ai copié.
Donc soit je comprend pas soit faut que je fasse un coup d'AJAX que je connait pas du tout (ça va pas me nettoyer le code ?) :D
Pour info cette fonction MajUser($search_num) fait une mise a jour d'une table mySQL, en fait le bonhomme il clique sur un lien d'une liste qui va mettre a jour la base au niveau du fichier qu'il va télécharger...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

10 nov. 2007, 00:04

tu peux regarder ce petit tuto pour apprendre rapidment à manipuler le php avec du javascript.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

bibe83
Invité n'ayant pas de compte PHPfrance

10 nov. 2007, 02:12

Ce forum est vraiment génial !
Ma petite fonction est maintenant OK, je suis content d'aller me pieuter en ayant appris un nouveau truc super utile!
C'est sûr que je vais faire bon usage de ceci merci Truc.

Mammouth du PHP | 19672 Messages

10 nov. 2007, 09:22

tu peux regarder ce petit tuto pour apprendre rapidment à manipuler le php avec du javascript.
Excellent, ce serait à rajouter dans les ressources indiquées dans ce sujet
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

10 nov. 2007, 11:40

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)


Lien ajouté à la liste des tutoriaux.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute