同时使用“onclick”通过ajax调用2个函数
我在使用AJAX时遇到了问题。我是新手,所以答案可能很简单!同时使用“onclick”通过ajax调用2个函数
所以,我有这段代码。
echo '<input type="button" onclick="opinion(1,\''.$v.'\'); op_status(1,\''.$v.'\');"/>';
这是用php编写的。
,它们通过onclick事件调用的2个功能,在2周不同的HTML的div切换AJAX。我得到的是第二个功能对div的结果。
任何想法,为什么会发生这种情况?
谢谢!
敬请原谅,但是这是我的第一篇文章。所以这是2个(相同的,只是不同的变量)js脚本之一。
function op_status(op,pid)
{
if (op=="")
{
document.getElementById("opstatus"+pid).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("opstatus"+pid).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","post_op_stat_disp.php?ajxpid="+pid,true);
xmlhttp.send();
}
被调用的文件进行一些检查并输出文本,具体取决于在某个html div处的检查。另一个js脚本完全一样,在另一个html div上做一些其他测试并输出一些其他文本。 :)不过输出是在这两个的div
首先相同的文字呼应我要补充“变种XMLHTTP = NULL;”在你的函数的顶部 - 这将在本地范围内变量,而不是使其成为全局性的 - 就像@David Dorward指出的那样。这将最终分配第二个声明的函数中的ajax请求的响应处理程序(它恰好是第二个函数),作为两个ajax请求的响应处理程序,并且您将获得您描述的行为。
如果你仍然得到相同的文本在div中,那么我会怀疑这两个javascript函数调用post_op_stat_disp.php而不是调用我认为是post_opinion_disp.php的意见函数,因此它将相同的数据返回给每个div。或者(更不可能)post_opinion_disp和post_op_stat_disp返回相同的结果。
由于这个问题是不是真的要热尔曼AJAX反而可能是一个编码问题 - 我会建议手动导航到http:// [服务器] /post_op_stat_disp.php?ajaxid=test和您的其他网址,看看是什么应该在两个div中填充。
然后我会强烈建议你抽象的Ajax代码一些常用的功能,使你没有复制的HTTP状态代码和XMLHTTP实例化逻辑。虽然它可能无法帮助你解决这个特定的问题,它会如果您是@Jared Farrish的建议,使用jQuery的减少您的代码大小沿着这些路线的东西:
function op_status(op, pid) {
if (!op) return $('#opstatus' + pid).html("");
$.get('post_op_status_disp.php?ajaxid=' + pid, function(r) {
$('#opstatus' + pid).html(r);
});
}
我的钱是在VAR关键字这将确保您获得两个不同的xmlhttp对象,而不是一个全局的对象。
然而,大多数已经评论 - 你可能要发布生成的结果来帮助我们,帮助您跟踪这个开溜了。
谢谢,让我们知道结果如何!
我想你会得到你的钱!非常感谢!!该变种的事情工作很棒!欢呼声 – gianniskpf 2011-04-17 19:34:41
没问题,现在如果我能弄清楚在哪里撤回我所有的互联网钱... – 2011-04-17 20:49:23
我们展示你的Javascript代码可能是一个好主意;-) – 2011-04-17 17:15:21
没有足够的信息在这里 - 请张贴(生成)JavaScript和HTML。 – 2011-04-17 17:16:09
向我们展示PHP生成的HTML也会很有用 - 我不喜欢试图忽略引号并在我脑海中扩展变量。 – Quentin 2011-04-17 17:16:17