大家好,您可以查看我之前的问题-未调用Ajax回调。如何解决这个问题?请在这里查看我的execute.php代码(编辑器的代码所在)并运行,并建议我为什么for循环会变成无限循环。
这是我的code1.js代码,我通过它获取编辑器的代码并运行exec.php
$.ajax({
type: 'GET',
url: 'exec.php',
data: code,
success: function(data)
{
alert(data);
$(loader).addClass("hidden");
var stdout = $(form).children('.stdout');
if (data.search("Parse error")>0)
{
var str = data.replace("<b>Parse error</b>: ","");
$(stdout).html(str);
$(stdout).removeClass('hidden');
}
else
{
$(stdout).html(data);
$(stdout).removeClass('hidden');
}
},
error: function(req, status, err) {
alert(status);
alert(err);
},
dataType: 'JSONP'
});
当我在编辑器中插入for循环的代码时,它会像一样进入无限循环
";}?>你可以在web.guru99.com 上查看这个问题
请帮助
不需要通过url发布PHP代码,就可以将其作为附加数据post
。这解决了您的编码问题,还允许您发送更大的代码块。
我认为这是由于+
符号在到达服务器时被误解了。我认为+
正被单个空白所取代,这在for
循环中造成了问题。因此,$x++
将被解释为$x
($x
之后的两个空白),它将创建一个无限循环。
为了解决这个问题,您可能应该使用javascript
将输入代码中的所有+
符号替换为一些符号,并在服务器端使用您自己的方法来urldecode
。