我的问题涉及糟糕的书面代码,它可以工作,但它很乱,无论如何,它只是出于实验目的,我试图实现一个“类似系统”,用户点击一个按钮,与按钮关联的对象 id 被发送到通过 ajax 编写脚本,并使用用户喜欢的数据更新 mysql 表 - 这将是对象 ID。为此,我必须使用 php 来回显对象,并使用带有 javascript 函数的 like 按钮,如下所示:
for($i=0;$i<count($tempest);$i++)
{echo "<div class='posts'>
\"".$row2['screen_name']."\"
<img src=\"".$row2['avatar']."\" width=50 height=50/><br>
added a new page to the magic title
\"".$row3['magic_name']."\"
<br>
<img src=\"".$row1['p_name']."\">
<div id=\"".$i."\">
<a href='Javascript:penda(\"".$wholei."\",\"".$i."\")'> //this is the javascript function
<img name='mpe' src='images/like_outline.png'> //this is the like button
</a></div>
</div>";
}
我知道回显 html 是错误的,但就像我说的那样,这只是为了好玩,当使用 jquery 版本 1.8.3 执行 ajax 请求时,它是:
function penda(item, itid) {
itid = itid + "";
$.ajax({
type: "POST",
url: "kumbatian.php",
data: {
penzi: item
},
success: function (ful) {
if (ful == 'win') document.getElementById('win').innerHTML += "YOU WIN!!";
}
});
document.getElementById(itid).innerHTML = "<a href='unlike()'><img src='images/like.png' /></a>";
}
我会收到以下错误,我正在使用 chrome:未捕获 RangeError:超出最大调用堆栈大小,我认为这意味着回显的“喜欢”的数量很多要附加到函数 penda,大小数组 $tempest 是 6,所以有六个类似的按钮。当我升级到 jquery 1.9.0 版时,没有这样的错误并且一切正常,所以这是我的问题:1.) 需要以上述格式回显多少按钮才能在 1.9 版中发生相同的错误.0? 2.)有什么更好的方法可以将所有类似按钮的按钮附加到函数 penda() 以避免我遇到的错误?
编辑:根据要求,这是 html 输出:
<div id="0"><a href="Javasctipt:penda("mna4","0")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="1"><a href="Javasctipt:penda("mna4","1")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="2"><a href="Javasctipt:penda("mna4","2")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="4"><a href="Javasctipt:penda("mna4","4")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="5"><a href="Javasctipt:penda("mna4","5")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="6"><a href="Javasctipt:penda("mna4","6")"> <img name="mpe" src="images/like_outline.png"> </a></div>
就是这样。