我试图在html(客户端)中单击按钮时执行PHP函数(服务器端)。我想将参数作为 name 传递给PHP函数,并且作为回报,我希望输出为Hello name
。
我试过了,但是没有显示出来,
服务器端
具有功能greet()
和参数$name
的PHP文件名为“ name.php ”如下:
<?php
function greet($name)
{
echo "hello $name";
}
?>
客户端
HTML文件由按钮“ Click me”组成,该按钮应将名称John
发送到PHP页面,并且greet()
函数应执行,输出应在客户端显示为“ Hello John”,如下所示:
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$("#button").click(function(){
$.ajax({
type: "POST",
url: "name.php",
data: { name: "John" }
}).done(greet(data)
{
alert( "Data Saved: " + data);
});
});
});
</script>
<input type="button" id="button" value="Click me">
</html>
如果其他任何POST方法可以提供输出,我已经使用Ajax方法来调用PHP函数,那么请告诉我。
有人可以帮忙如何通过单击按钮从PHP函数获取输出到客户端。
答案 0 :(得分:1)
即使从Ajax,也不能从JavaScript调用PHP函数。 Ajax的作用是要求从PHP文件输出的数据。因此,您将需要在name.php
中调用该函数,该函数将提供输出-然后可以在PHP中进行打印。
Ajax将仅获取从PHP打印的字符串。
还请注意,除非在文件末尾执行?>
,否则不需要关闭PHP,除非之后有一些HTML或类似的代码。
在服务器端,您将执行以下操作
<?php
// Define the function
function greet($name) {
return "Hello $name";
}
// Call the function with the value sent from Ajax - this output is what Ajax fetches
echo greet($_POST['name']);
客户端,您会做类似
的操作<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$("#button").on("click", function() {
$.ajax({
type: "POST",
url: "name.php",
data: { name: "John" }
}).done(data) {
alert("Data Saved: " + data);
});
});
</script>
<input type="button" id="button" value="Click me">
然后data
将包含从您的PHP文件打印的所有字符串。如果需要数组,则需要将其转换为JSON。
答案 1 :(得分:0)
首先,您需要在单击按钮时绑定ajax调用,因此单击按钮时将触发ajax调用。
$(document).ready(function()
{
// when button click it will trigger ajax call
$("#button").click(function(){
$.ajax({
type: "GET",
url: "name.php",
data: { name: "John" },
success: function(data) {
// on successfull return it will alert the data
alert("Data saved: " + data);
}
});
});
});
以您的name.php
<?php
// get your data you send from ajax
$name = $_GET['name'];
// it will echo the "hello $name" and return it
greet($name);
function greet($name)
{
echo "hello $name";
}
?>