Ik heb een pagina gemaakt genaamd functioncalling.php die twee knoppen bevat, Submit en Insert. Als beginner in PHP, wil ik testen welke functie wordt uitgevoerd wanneer op een knop wordt geklikt. Ik wil dat de uitvoer op dezelfde pagina komt. Dus heb ik twee functies gemaakt, een voor elke knop. De broncode voor functioncalling.php is als volgt:
<!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.";
}
?>
Het probleem hier is dat ik geen enkele output krijg nadat op een van de knoppen is geklikt.
Waar ga ik precies de fout in?
Knopklikken is client side terwijl PHP wordt uitgevoerd server side, maar u kunt dit bereiken door gebruik te maken van Ajax:
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
In uw PHP-bestand:
<?php
function abc($name){
// Your code here
}
?>
Je kunt PHP-functies zoals het klikken op een knop niet vanuit HTML aanroepen. Omdat HTML aan de client-zijde staat, terwijl PHP server-zijde draait.
Of je moet Ajax gebruiken of het doen zoals in de code hieronder.
<?php
if($_GET){
if(isset($_GET['insert'])){
insert();
}elseif(isset($_GET['select'])){
select();
}
}
function select()
{
echo "The select function is called.";
}
function insert()
{
echo "The insert function is called.";
}
?>.
Je moet je formulier gegevens invoeren en dan controleren of er op de juiste knop is geklikt.
Het onclick
attribuut in HTML roept JavaScript functies op, geen PHP functies.