【发布时间】:2012-01-07 12:54:43
【问题描述】:
我有一个显示在网页上的 5 行(比如说)的 HTML 表格。表格的第一列是 RowID(每行都是唯一的),每行的最后一列是一个 [X] 按钮(点击它会删除排)。整个表格位于 <div> 元素中,id="cartmain"
<div id="cartmain">
<table>
<tr>
<td>....</td>
<td>....</td>
<td> <a href="#" onclick="removeitem('id1')"> [X] </a> </td>
</tr>
..
..
</table>
</div>
这就是我删除行的方式:
STEP1: 当用户点击[X] 按钮时,XMLHTTPRequest 函数将向PHP 代码发送消息,每行的ID 都是唯一的。在 PHP 代码删除行期间,DIV 元素显示“正在加载...”
document.getElementById("cartmain").innerHTML = "Loading..."
第 2 步: PHP 代码将从表(和数据库)中删除行并返回剩余的表。
<?php
//removing row from database/table...
//send the remaining table back to the XMLHTTPRequest function...
echo "<table>";
echo "<tr><td>...</td>
<td>...</td>
<td> <a href=\"#\" onclick=\"removeitem('id1')\"> [X] </a> </td>";
echo "</tr>";
...
...
...
echo "</table>";
?>
从 PHP 代码中接收到的剩余表格然后使用以下行显示在 DIV 元素中:
document.getElementById("cartmain").innerHTML = removeitem.responseText;
我的问题: 假设我有 5 行的表。当我单击“删除”按钮时,该行被成功删除,然后显示剩余 4 行的表格。问题来了:当我想从表中删除另一行时:什么都没有发生。换句话说,如果我再次点击某行的 [X],那么什么都不会发生。不调用 XMLHTTPRequest 函数。在理想情况下,它应该使用该唯一的 RowID 再次调用 XMLHTTPRequest 函数,然后应该显示剩余 3 行的表。
重要提示:当我刷新页面时,我可以删除另一行。但这一次,我也只能删除一行。为了再删除一个,我必须再次刷新页面。
有没有人能找出这里的问题?请帮忙。
注意:我的表实际上是一个购物车,每行都包含一个产品。 [X] 按钮实际上表示从购物车中“移除商品”。
这里是 JavaScript 代码:
function removeitem(itemid)
{
alert("The item to be removed is: "+itemid);
if(window.XMLHttpRequest)
{
removeitem = new XMLHttpRequest();
}
else
{
removeitem=new ActiveXObject("Microsoft.XMLHTTP");
}
removeitem.onreadystatechange=function()
{
if (removeitem.readyState==4 && removeitem.status==200)
{
document.getElementById("cartmain").innerHTML=removeitem.responseText;
}
else if(removeitem.readyState < 4)
{
document.getElementById("cartmain").innerHTML="Loading...";
}
}
var linktoexecute = "cart.php?option=5&itemid="+itemid; //option =5 signifies that I want to remove the item with ITEMID.
removeitem.open("GET",linktoexecute,true);
removeitem.send();
}
函数removeitem第一次显示警告“要删除的项目是:123”,但第二次没有显示。当我在 Firebug 控制台中检查时,第二次出现以下错误:
removeitem 不是函数
请帮忙!!
我所有的 Javascript 函数都在一个单独的文件 (sc.js) 中,我在页面的 HEAD 标记中使用了 <script type="text/javascript" src="js/sc.js"></script>。
我的观点:所以最后我认为问题很简单:如果网页使用 XMLHTTPRequest 从 PHP 页面请求一些 HTML,并且该 HTML(由 PHP 发送)包含一些调用 Javascript 的按钮函数——那么在这种情况下会发生什么[?]。现在因为我能够第一次删除该行,所以我认为说上述情况不起作用是错误的。只是当我第二次单击按钮时,来自 PHP 的代码和已经加载的 Javascript 并不知道彼此的存在。
【问题讨论】:
-
您的 PHP 代码在引号中显示错误。使用
<a href=\"#\" onclick=\"removeitem('id1')\"> [X] </a> </td>。此外,如果您需要帮助,则必须显示相关的 (JavaScript) 代码。 -
嗨 Rob:我只使用 \。只是我忘了在这里提。编辑问题! :)
-
您更新的问题仍然包含几个报价问题。您确定您的代码可以正常工作,即使是第一次点击?检查您的错误控制台,或发布指向您网站的链接。
-
嗨 Rob,它在第一次点击时运行良好。你能告诉我哪个部分有报价问题吗?是javascript还是PHP?我会快速编辑它并让你知道回复。谢谢你。 PS:我的网站在我的本地系统上。
-
嗨 Rob,我发现你说的是哪个引用错误。再次编辑。是否还有报价错误? :)
标签: php javascript html xmlhttprequest