当前位置: 首页 > 面试题库 >

使用jQuery的AJAX请求回调

逑何平
2023-03-14
问题内容

我是使用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文件,该文件仅输出number times 2当前PHP
的一部分。然后,从当前的PHP到新的单独的PHP生成AJAX请求。



 类似资料:
  • 问题 你想要通过 AJAX 来从你的服务器加载数据,而不使用 jQuery 库。 解决方案 你将使用本地的 XMLHttpRequest 对象。 通过一个按钮来打开一个简单的测试 HTML 页面。 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>XMLHttpRequest Teste

  • 问题内容: 我一直在从jquery收到针对Ajax请求的“ parsererror”,我尝试将POST更改为GET,以几种不同的方式(创建类等)返回数据,但是我似乎无法弄清楚问题出在哪里。 我的项目在MVC3中,我使用的是jQuery 1.5,我有一个Dropdown,并在onchange事件上触发了一个调用,以基于所选内容获取一些数据。 下拉列表:(这会从Viewbag的列表中加载“ Views

  • 问题内容: 是否有可能使用jQuery 取消/中止尚未收到响应的Ajax请求? 问题答案: 大多数jQuery Ajax方法都返回XMLHttpRequest(或等效的)对象,因此您可以使用abort()。 请参阅文档: 中止方法 (MSDN)。取消当前的HTTP请求。 abort()(MDN)。如果请求已经发送,则此方法将中止请求。 更新: 从jQuery 1.5开始,返回的对象是名为jqXHR

  • 问题内容: 使用jQuery,如何 取消/中止 尚未收到响应 的Ajax请求 ? 问题答案: 大多数jQuery Ajax方法都返回XMLHttpRequest(或等效的)对象,因此您可以使用。 请参阅文档: abort Method (MSDN).取消当前的HTTP请求。 abort()(MDN)。如果请求已经发送,则此方法将中止请求。 var xhr = $.ajax({ type: “POS

  • 问题内容: 帮助,如果您可以- 情况: http://foobar.com包含一个远程托管的Javacript文件(http://boobar.com/stuff.js)。 目标是从foobar.com上的远程托管php脚本中获取警报 我在stuff.js中尝试了以下代码: 没运气。 也没有运气。 在php端,我尝试了以下两种方法: 在Firefox中,出现安全错误。我了解它认为我违反了安全模型。

  • 问题内容: 我正在编写一个应用程序,我需要从另一台服务器访问客户端中的一些json数据。由于跨域问题,我计划使用jsonp。jQuery允许我使用$ .getJSON()方法来执行此操作,但是,我无法判断该方法是否失败(即服务器没有响应或其他原因)。所以我尝试了使用$ .ajax来获取JSON数据的方法。但这不起作用,我也不知道该怎么做。这是显示我的问题的示例: 如果使用此代码创建一个网页,然后单