İki düğme içeren functioncalling.php adında bir sayfa oluşturdum, Gönder ve Ekle. PHP'ye yeni başlayan biri olarak, bir düğmeye tıklandığında hangi işlevin çalıştırıldığını test etmek istiyorum. Çıktının aynı sayfaya gelmesini istiyorum. Bu yüzden her düğme için bir tane olmak üzere iki fonksiyon oluşturdum. functioncalling.php için kaynak kodu aşağıdaki gibidir:
<!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.";
}
?>
Buradaki sorun, düğmelerden herhangi birine tıklandıktan sonra herhangi bir çıktı alamamamdır.
Tam olarak nerede yanlış yapıyorum?
Düğme tıklamaları istemci tarafındayken PHP sunucu tarafında yürütülür, ancak bunu Ajax kullanarak başarabilirsiniz:
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
PHP dosyanızda:
<?php
function abc($name){
// Your code here
}
?>
HTML'den bir düğmeye tıklamak gibi PHP işlevlerini çağıramazsınız. Çünkü HTML istemci tarafındayken PHP sunucu tarafında çalışır.
Ya Ajax kullanmanız ya da aşağıdaki kod parçasında olduğu gibi yapmanız gerekir.
<?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.";
}
?>.
Form verilerinizi göndermeniz ve ardından tıklanan uygun düğmeyi kontrol etmeniz gerekir.
HTML'deki onclick
niteliği PHP işlevlerini değil JavaScript işlevlerini çağırır.