【发布时间】:2013-08-01 03:44:36
【问题描述】:
我是使用 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 isset,则不输出 html;否则输出 HTML),但我正在回显 HTML,我宁愿不这样做。
- 设置一个单独的 PHP 脚本来接收我的 AJAX 调用:这就是我最初所做的,它工作得很好。不过,我有兴趣将所有内容都保存在一个文件中,并想探索可行的方法。
我确信有一种优雅的方法可以做到这一点。感谢您的任何建议!
【问题讨论】:
-
为什么要将所有内容保存在一个文件中。你应该结构化你的代码。否则,您将获得包含混乱代码的非常大的文件。那么css和javascript呢?您也想将所有内容都放在一个文件中吗?你可以做到,但我认为这不会很优雅。
-
史蒂文 - 很公平。我想探索将所有调用保存在一个文件中的原因是因为我正在处理一个项目,我们将有多个 php 页面进行 AJAX 调用,并且我正在尝试确定处理这种情况的最佳实践。现在,我会说每个像这样使用 AJAX 调用的脚本都会有一个对应的 .inc 包含文件——也许最好对那个包含文件进行 POST 调用,而不是使用相同的页面或不同的脚本。我现在正处于开发的探索阶段,我得到的答案非常有帮助。