php - 使用 jQuery 的 AJAX 请求回调

标签 php jquery ajax

我不熟悉使用 jQuery 来处理 AJAX,并且编写了一个基本脚本来了解基础知识。目前我正在向同一个文件发送 AJAX 请求,我希望根据该 AJAX 调用的结果进行一些额外的处理。

这是我的代码:

**/*convertNum.php*/**

$num = $_POST['json'];
if (isset($num))
 echo $num['number'] * 2;
?>

<!DOCTYPE html>
<html>
 <head>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 <style type="text/css">
 td {border:none;}

 </style>
 </head>
 <body>

 <table width="800" border="1">
 <tr>
 <td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>
 <td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>
 </tr>

 <tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>
 </table>



 <script>
 $(document).ready(function () {
 $('#getNum').click(function () {
 var $numSent = $('#numSend').val();
 var json = {"number":$numSent};

 $.post("convertNum.php", {"json": json}).done(function (data) 
 {
 alert(data);
 }
 );

 });
 });
 </script>
 </body>
</html>

这是我提交数字“2”后得到的响应:

4

<!DOCTYPE html>

<html>

<head>

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

 <style type="text/css">

td {border:none;}

</style>

</head>

<body>



<table width="800" border="1">

 <tr>

 <td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>

 <td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>

 </tr>

 <tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>

</table>

<script>

$(document).ready(function () {

 $('#getNum').click(function () {

 var $numSent = $('#numSend').val();

 var json = {"number":$numSent};

 $.post("convertNum.php", {"json": json}).done(function (data) 

 {

 alert(data);

 }

 );



 });

});

</script>
</body>
</html>

显然我只对接收和使用数字“4”感兴趣,因此我的问题是:准确指定我想要返回的数据的最佳方法是什么?

我的一些想法:

  • 将我所有的 HTML 包装在一个 if 语句中(即,如果设置了 $num,则不输出 html;否则输出 HTML)但我会回应 HTML,我宁愿不这样做。
  • 设置一个单独的 PHP 脚本来接收我的 AJAX 调用:那是我最初所做的,而且效果很好。但是,我对将所有内容都保存在一个文件中很感兴趣,并且想探索这样做的可能方法。

我确信有一种优雅的方法可以做到这一点。感谢您的任何建议!

最佳答案

优雅的方法是拥有一个单独的 (!) PHP 文件,它只会输出当前 PHP 的 number times 2 部分。然后您从当前的 PHP 生成一个 AJAX 请求到新的单独的 PHP。

关于php - 使用 jQuery 的 AJAX 请求回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973386/

相关文章:

php - 加入 2 个表并只显示一个 id 的最大值 - mysql

php - 格式化网址

javascript - WordPress 主题不显示帖子

javascript - 当对象来自 jQuery 选择时,如何将图像对象绘制到 Canvas 上?

javascript - 加载 jQuery 插件和多个脚本的最佳实践

javascript - 管理和初始化代表 DOM 元素的 JS 对象的最佳方式

php - sql LIKE 有一定的限制

javascript - 如何翻转元素 onclick 按钮?

jquery - 在 ruby​​-on-rails 应用程序上使用 AJAX 提交表单后,如何让 jQuery 更新页面上的元素?

javascript - 检测两个浏览器窗口是否打开同一个站点