使用jQuery的Ajax请求回调

使用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};

显然,我只对接收和使用数字‘4’感兴趣,因此我的问题是:指定确切地返回哪些数据的最佳方法是什么?

我有一些想法:

  • 将我的所有HTML封装在一个if语句中(即,如果$num isset,不要输出html;否则输出HTML),但是我要回显HTML,我不想这样做。
  • 设置一个单独的PHP脚本来接收我的Ajax调用:这是我最初所做的,而且它运行得很好。但是,我对将所有内容都保存在一个文件中很感兴趣,并希望探索这样做的可能方法。

我相信有一种优雅的方法可以做到这一点。谢谢你的建议!


DIEA
浏览 898回答 3
3回答

绝地无双

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

RISEBY

我相信这个职位回答你所看到的一个方面-在你的警报框中的整个页面的回音。接下来,下面是一些很好的文章,用于获取Ajax的基础知识:一个简单的例子更复杂的例子根据下拉列表1中的选择填充下拉列表2
打开App,查看更多内容
随时随地看视频慕课网APP