如何递归调用Ajax函数
问题描述:
我想知道如何以递归方式调用Ajax函数。 我的AJAX代码是这样的,如何递归调用Ajax函数
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var step='1';
$.ajax
(
{
url: 'test1.php',
data: {step: step},
success: function(output)
{
step=eval(output);
alert(step);
}
}
);
</script>
</head>
</html>
和PHP代码是这样的
<?php
function writeName()
{
echo "step=2";
}
function ReadName()
{
echo "In Read Name Function";
}
if(isset($_REQUEST['step']) && !empty($_REQUEST['step']))
{
$step = $_REQUEST['step'];
switch($step)
{
case '1' :
writeName();
break;
case '2' :
ReadName();
break;
default :
echo "Empty String";
}
}
?>
第一次函数被调用步骤变量的值等于1个,函数写名字修改了它作为2.现在我想用Step变量值等于2来调用这个Ajax函数。以便第二个php函数被调用。
答
您可以创建一个功能,使Ajax调用并接受步骤作为参数:
function getStep(step) {
$.ajax
(
{
url: 'test1.php',
data: {step: step},
success: function(output)
{
step=parseInt(output);
alert(step);
if (step < 2) {
getStep(step);
}
}
}
);
}
答
你需要使用“json_encode()”功能在服务器端的PHP脚本,而不是简单的“回声”。 Javascript中的“eval()”方法尝试运行返回的文本。
你应该在writeName()函数编写代码:
echo json_encode(2);
+0
@Sergey Kuznetsov:Thanx。我来了解一个新概念。 – MAS1 2010-04-09 07:38:21
旁白:你可以离开了'isset()函数'如果你已经检查'空()'。 – janmoesen 2010-04-09 07:30:32
@janmoesen Yah,我可以.thanx。 – MAS1 2010-04-09 07:35:15