Comment appeler une fonction PHP sur le clic d'un bouton
J'ai créé une page appelée functioncalling.php que contient deux boutons, Soumettre et Insérer. En tant que débutant en PHP, je veux tester la fonction qui est exécutée quand un bouton est cliqué. Je veux que la sortie à venir sur la même page. J'ai donc créé deux fonctions, une pour chaque bouton. Le code source pour functioncalling.php est comme suit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<form action="functioncalling.php">
<input type="text" name="txt" />
<input type="submit" name="insert" value="insert" onclick="insert()" />
<input type="submit" name="select" value="select" onclick="select()" />
</form>
<?php
function select(){
echo "The select function is called.";
}
function insert(){
echo "The insert function is called.";
}
?>
Le problème ici est que je n'obtenez pas de sortie après que l'utilisateur clique sur les boutons.
Exactement où vais-je tort?
- PHP s'exécute sur le serveur. Votre cliquez sur gestionnaires d'exécuter sur le client. Vous ne pouvez pas exécuter les fonctions de PHP sur le clic d'un bouton comme ceci. Vous pouvez le faire en Javascript, cependant.
- Questions à poser pour le code doit démontrer une compréhension minimale du problème à résoudre. Inclure les tentatives de solutions, pourquoi ils n'ont pas de travail, et les résultats attendus.
- Merci pour la réponse. Pourriez-vous me dire exactement comment dois-je appeler ces fonctions PHP à partir de JavaScript?
- Voir cette réponse.
Vous devez vous connecter pour publier un commentaire.
Clics de bouton sont côté client alors que PHP est exécuté côté serveur, mais vous pouvez y parvenir en utilisant Ajax:
Dans votre fichier PHP:
Oui, vous avez besoin d'Ajax ici. Veuillez consulter le code ci-dessous pour plus de détails.
Changer votre balise comme ceci
jQuery:
Dans ajax.php
Vous devez vous rendre sur le bouton d'appel de la même page et dans un PHP section vérifier si le bouton a été pressé:
HTML:
PHP:
Vous ne pouvez pas appeler des fonctions PHP comme le clic sur un bouton de HTML. Parce que le HTML est sur le côté client alors que le PHP s'exécute côté serveur.
Soit vous avez besoin d'utiliser Ajax ou le faire, comme dans l'extrait de code ci-dessous.
Vous devez poster votre formulaire de données et de vérifier ensuite pour le bouton est cliqué.
À afficher $message de votre entrée:
À utiliser functioncalling.php comme un fichier externe, vous devez inclure il en quelque sorte dans votre document HTML.
Essayez ceci:
Vous pouvez écrire comme ça en JavaScript ou jQuery Ajax et appelez le fichier
JS:
HTML:
La
onclick
attribut HTML appels de fonctions JavaScript, pas de fonctions de PHP.Utiliser un appel récursif où l'action du formulaire s'appelle elle-même. Ensuite ajouter le code PHP dans le même formulaire, afin de l'attraper. Dans
foo.php
votre formulaire d'appelfoo.php
surpost
Une fois que le formulaire a été soumis, il va s'appeler lui-même (
foo.php
) et vous pouvez l'attraper par le PHP variable prédéfinie$_SERVER
comme indiqué dans le code ci-dessousJ'ai été coincé dans le présent et je l'ai résolu avec un champ caché:
Dans
value
vous pouvez ajouter ce que vous voulez ajouter.Dans test.php vous pouvez récupérer la valeur par le biais du
$_Post[ID]
.ID
être cité dans$_Post[ID]
? N'support de PHP mots nus, comme en Perl?Voici un exemple que vous pouvez utiliser: