Javascript 某物';It’我用$.post是不对的
有一些奇怪的问题,我已经研究了几天了,甚至谷歌也无法解决 我有一段JS,当按下按钮时调用它。我告诉你这个函数真的被调用了,因为会弹出警报(“1”)。我也很确定地知道这里有人居住Javascript 某物';It’我用$.post是不对的,javascript,php,ajax,Javascript,Php,Ajax,有一些奇怪的问题,我已经研究了几天了,甚至谷歌也无法解决 我有一段JS,当按下按钮时调用它。我告诉你这个函数真的被调用了,因为会弹出警报(“1”)。我也很确定地知道这里有人居住 <script type="text/javascript"> function process_match() { var rarray = new Array(); $x = $("input[name=pair]:checked").val(); $left = $x.charAt(0);
<script type="text/javascript">
function process_match() {
var rarray = new Array();
$x = $("input[name=pair]:checked").val();
$left = $x.charAt(0);
$rite = $x.charAt($x.length-1);
$car1a = document.getElementById("car"+$left+"_"+$rite+"_1").value;
$car1b = document.getElementById("car"+$rite+"_"+$left+"_1").value;
.....
$hsb = document.getElementById("hs"+$rite+"_"+$left).value;
rarray[0] = $left;
rarray[1] = $rite;
rarray[2] = $car1a;
rarray[3] = $car1b;
.....
rarray[15] = $hsb;
alert("1");
$.post("./updpoule.php",
{'results': rarray},
function(data) {
alert("2");
}
);
}
</script>
函数进程_匹配(){
var rarray=新数组();
$x=$(“输入[name=pair]:选中”).val();
$left=$x.charAt(0);
$rite=$x.charAt($x.length-1);
$car1a=document.getElementById(“car”+$left+“”+$rite+“1”).value;
$car1b=document.getElementById(“car”+$rite+“\u”+$left+“\u1”).value;
.....
$hsb=document.getElementById(“hs”+$rite+““+$left”).value;
rarray[0]=$left;
rarray[1]=$rite;
rarray[2]=$car1a;
rarray[3]=$car1b;
.....
rarray[15]=$hsb;
警报(“1”);
$.post(“./updpoule.php”,
{'results':rarray},
功能(数据){
警报(“2”);
}
);
}
然后,我有以下php文件:
<?php
$f = fopen("/tmp/q", "w");
$array = $_POST['results'];
fwrite($f,"AAA");
fwrite($f, $array[0]);
fwrite($f, $array[1]);
fclose($f);
?>
我已经将此代码视为类似问题的解决方案,但我无法使其正常工作。
如果我运行代码,会弹出警报(“1”)。之后什么也没发生。没有创建文件/tmp/q。但是,如果我调试页面,并在$.post所在的位置设置一个断点,然后逐步执行,就会创建一个文件/tmp/q,只是内容不正确
欢迎提出任何建议
谢谢,
Hans尝试从php脚本返回一些内容。 例如,将以下内容添加到文件末尾:
echo 'OK';
?>
在你的JS中:
$.post("./updpoule.php", {'results': rarray}, function(data) {
if (data === 'OK') {
alert('ok');
} else {
console.log(data);
alert('error');
}
});
如果您将弹出带有
错误的弹出窗口
,请检查您从php获得的数据的控制台。您的php从不返回任何内容,因此POST请求将超时。如果您想返回任何内容,只需回显即可。您也只需假设fopen成功。永远不要假设成功如果($f==false){die(“无法打开文件以进行输出”);}
在代码中,$array
是未定义的,那么您可能还会收到一堆未定义的var/index警告。@adeneo它不会超时,它只会返回一个空字符串。打开开发者工具并转到网络选项卡,查看AJAX调用是否有错误。谢谢。我完全按照你的要求做了,但问题仍然存在。目前,我不认为这是一个编程错误,但可能是其他错误。如果不一步一步地跟踪和执行操作,我就不会得到文件,也不会出现“确定”或“错误”警报。如果我跟踪并单步执行该函数,则会创建一个文件并显示“确定”警报。奇怪…你确定你的功能被触发了吗?检查控制台是否有任何错误。是的。当我跟踪页面并单击onclick调用函数的按钮时,跟踪在我在函数中设置的断点处停止。如果您愿意,您可以在Ok上看到它的运行,因此我尝试了您提供的链接,它会在警报“1”后立即显示Ok弹出窗口。它会吗?它变得越来越奇怪。我确实可以看到正在创建的文件,所以一切都必须正常工作。除了本地,那就是…谢谢你和我一起思考。我将尝试进行更多的调试,以找出它在本地无法工作的原因。