【发布时间】:2019-03-08 06:10:57
【问题描述】:
我正在尝试在 html(客户端)中单击按钮时执行 PHP 函数(服务器端)。我想将参数作为 name 传递给 PHP 函数,作为回报,我希望输出为 Hello name。
我试过了,但没有显示,
服务器端
PHP文件名为“name.php”,函数greet(),参数$name如下:
<?php
function greet($name)
{
echo "hello $name";
}
?>
客户端
HTML 文件包含一个按钮“点击我”,该按钮应该将名称 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>
我已经使用 Ajax 方法调用 PHP 函数,如果任何其他 POST 方法可以提供输出,请告诉我。
有人可以帮助如何在按钮单击时从 PHP 函数获取输出到客户端。
【问题讨论】:
-
done(greet(data)- 你不能直接从 JS 调用 PHP 函数。当您对name.php进行ajax 调用时。该文件(PHP 文件)需要调用该函数并将值返回给您的 ajax 回调。您的 ajax 响应将只是 PHP 文件中的输出数据,仅此而已。 -
首先你需要调用你的ajax按钮点击移动你的ajax代码到
$("#button").click(function(){ //yourajaxcode });块 -
如果您只想显示“Hello John”(或“Hello + 任何 $name 等于”)...您需要在客户端做任何事情吗?为什么你不能直接
<?php echo greet($name) ?>in-line (改变“greet()”所以它只是连接字符串,而不是调用“echo”)????
标签: php ajax html client-server