J'ai besoin d'un bouton qui appelle une fonction php pour récupérer les données affichées dans la base de données. Comment dois-je faire ? Je viens de découvrir que parce que le php est côté serveur, ça craint. Alors n'hésitez pas à m'aider.
Réponses
Trop de publicités?Vous ne pouvez pas appeler directement une fonction PHP en appuyant sur un bouton pour la raison que vous avez indiquée vous-même. Pour exécuter du code PHP, vous devez faire une nouvelle demande au serveur. La demande peut être faite à un autre script ou à celui qui a produit votre page en l'appelant à nouveau avec un paramètre pour contrôler son comportement.
Vous pouvez également appeler un script PHP via Javascript (AJAX) afin de pouvoir traiter sa sortie et mettre à jour la page sans rechargement complet.
La deuxième option est plus soignée mais plus complexe, la première peut paraître moins agréable à l'œil, mais elle fonctionne que le navigateur de l'utilisateur ait activé Javascript ou non.
Il devrait probablement se situer dans un champ de formulaire, quelque chose comme ceci :
<form action="YOUR_PHP_SCRIPT.php">
<input type="submit" />
</form>
Lorsque le bouton d'envoi est pressé, l'action du formulaire est déclenchée.
Il se peut que vous deviez tenir compte d'une foule d'autres éléments à partir de ce point, mais c'est un début.
Oui, parce que PHP est côté serveur, vous avez deux options. La première consiste à créer un bouton qui appelle le script PHP et rend une toute nouvelle page. L'autre est d'utiliser AJAX (asynchronous javascript and XML) sur la page, voir jquery.com pour une bonne façon de faire cela, et de ne rendre à nouveau que la table qui affiche les données.
Ce que Yacoby a dit, vous devrez utiliser AJAX pour faire l'appel au serveur, ou quelque chose comme ceci : http://www.ajaxdaddy.com/demo-sorted-table.html
C'est un travail pour ajax, comme d'autres l'ont mentionné. Si je peux développer, si vous débutez, je recommande fortement d'utiliser une bibliothèque javascript pour vous faciliter la vie. Avec prototype voici à quoi pourrait ressembler votre bouton :
<input type="button" id="button_foo">Button</input>
Voici à quoi pourrait ressembler votre javascript :
$('button_foo').observe('mousedown',function(e){
new Ajax.Request('handler.php',{
method:'post',
onSuccess:function(t){
$('table_bar').update(t.responseText);
}
});
});
Cela peut sembler un peu décourageant au début, mais je pense que le js de base a une courbe d'apprentissage assez gérable lorsqu'on utilise une bibliothèque. Le code ci-dessus prendrait la sortie de handler.php, et remplacerait le contenu d'un élément avec un id de "table_bar" avec le html retourné.
si vous décidez d'utiliser le prototype, la documentation est vraiment utile et facile à comprendre, et il existe un excellent livre de pragmatic press sur le sujet qui vous permettra de le comprendre très rapidement.
J'espère que cela vous aidera !