Javascript 从表中删除TR
我正在通过PHP echo绘制一个表,其中包含来自SQL查询的一些数据。这是一个购物车脚本。因此,当客户单击从购物车中删除某些项目时,我想从表中删除该TR。为此,我将调用javascript函数“removefromcart”,传递项目ID和行索引。因此,此函数将从SQL中删除购物车中的项目,并使用行索引从表中删除TR。以下是我试图做到的:Javascript 从表中删除TR,javascript,php,Javascript,Php,我正在通过PHP echo绘制一个表,其中包含来自SQL查询的一些数据。这是一个购物车脚本。因此,当客户单击从购物车中删除某些项目时,我想从表中删除该TR。为此,我将调用javascript函数“removefromcart”,传递项目ID和行索引。因此,此函数将从SQL中删除购物车中的项目,并使用行索引从表中删除TR。以下是我试图做到的: <?php $uid = mysql_real_escape_string($_SESSION['userlo
<?php
$uid = mysql_real_escape_string($_SESSION['userlogged']);
$Query = mysql_query("SELECT id, info FROM cart where username = '$uid'");
while($row = mysql_fetch_array($Query))
{
echo '<tr id="OrderTable"> <td> '.htmlspecialchars($row["info"], ENT_QUOTES, 'UTF-8').' </td>';
$id = $row['id'];
$NewQuery = mysql_query("SELECT name, date, country, flag, code, med, price FROM products WHERE id = '$id'");
while($newrow = mysql_fetch_array($NewQuery))
{
echo '<td> '.htmlspecialchars($newrow["name"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td> '.htmlspecialchars($newrow["date"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td> '.htmlspecialchars($newrow["country"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td> '.htmlspecialchars($newrow["flag"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td> '.htmlspecialchars($newrow["code"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td> '.htmlspecialchars($newrow["med"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td> '.htmlspecialchars($newrow["price"], ENT_QUOTES, 'UTF-8').' </td>';
echo '<td><label><a href="javascript:buyfromcart('.htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8').')">
<b><img src="/img/buy.png" /></b></a></label>
<label>
<script>
var x = document.getElementById("OrderTable").rowIndex;
document.write(\'<a href="javascript:removefromcart('.htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8').', \'+ x +\')"><b><img src="/img/cancel.png"/></b></a></label> </td> </tr>\') </script>';
}
}
?>
</table>
</div>
其中3是产品的ID(OK),但表中每个TR的第二个参数始终为1。。。为什么不获取TR的当前行索引
生成的HTML输出为:
<html>
<head>
<link rel="stylesheet" href="./css/style.css">
<title>Shop.su</title>
<script type="text/javascript">
function load(url) {
var xmlhttp;
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('cart').innerHTML = 'Your orders ('+xmlhttp.responseText+')';
}
}
xmlhttp.open('GET', url, true);
xmlhttp.send();
}
function addtocart(id)
{
document.getElementById('add'+id).innerHTML='<b>Added!</b>';
load('/cart.php?addtocart&dump='+id);
}
function removefromcart(id, x)
{
alert("Row index is: " + x.rowIndex);
}
</script>
</head>
<body id="home">
<div id='cssmenu'>
<ul>
<li id="homeicon" class='active'><a href='?news'><span>News</span></a></li>
<li id="ordersicon"><a href='?orders'><span id="cart">Your Orders (11)</span></a></li>
<li id="ticketicon" class='last'><a href='?tickets'><span>Tickets</span></a></li>
</ul>
</div> <div id="container">
<p class="orderpage"> Your current cart items:: </p>
<div class="ResultsTable" >
<table >
<tr>
<td>
Type
</td>
<td>
Name
</td>
<td>
Date
</td>
<td>
Country
</td>
<td>
Flag
</td>
<td>
Code
</td>
<td>
Med.
</td>
<td>
Price
</td>
<td>
Buy
</td>
</tr>
<tr id="OrderTable"> <td> Mirror </td><td> NewName </td><td> 456789 </td><td> USA </td><td> VISA </td><td> 101 </td><td> 1409 </td><td> 10.00 </td><td><label><a href="javascript:buyfromcart(3)">
<b><img src="/img/buy.png" /></b></a></label>
<label>
<script>
var x = document.getElementById("OrderTable").rowIndex;
document.write('<a href="javascript:removefromcart(3, '+ x +')"><b><img src="/img/cancel.png"/></b></a></label> </td> </tr>') </script><tr id="OrderTable"> <td> Track </td><td> New Base123123 </td><td> 456789 </td><td> Brazil </td><td> TEST </td><td> 101 </td><td> 1409 </td><td> 10.00 </td><td><label><a href="javascript:buyfromcart(4)">
<b><img src="/img/buy.png" /></b></a></label>
</table>
</div> </div>
</body>
</html>
苏先生
函数加载(url){
var-xmlhttp;
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=newActiveXObject('Microsoft.xmlhttp');
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById('cart').innerHTML='Your orders('+xmlhttp.responseText+');
}
}
open('GET',url,true);
xmlhttp.send();
}
函数addtocart(id)
{
document.getElementById('add'+id).innerHTML='Added!';
加载('/cart.php?addtocart&dump='+id);
}
函数removefromcart(id,x)
{
警报(“行索引为:”+x.rowIndex);
}
您当前的购物车项目:
类型
名称
日期
国家
旗帜
代码
医学。
价格
购买
镜像新名称456789美国签证101 1409 10.00
var x=document.getElementById(“OrderTable”).rowIndex;
记录。写入(“”)跟踪新基地123123456789巴西测试101 1409 10.00
如果查看呈现的html,可能会更清楚发生了什么。您不需要使用javascript设置
x
,您可以在PHP代码中通过添加一个变量来设置它,该变量在循环时在外部中递增 我会这样做:
while($row = mysql_fetch_array($Query))
{
cont++;
echo '<tr id="myrow' . cont . '">
顺便说一句,我认为你应该使用PDO,你能给我们提供更多的php代码吗?例如,向我们展示foreach循环。很抱歉,我确实需要查看removefromcart方法的完整html输出和javascript。我找不到只有php代码的错误。嗨,我之前接受的答案是不正确的,因为当我在php中输入一个变量来计算行时,如果我删除表中的一行,所有数字都应该更改,因为表中少了1行,而在php中它保持不变。所以我需要一个javascript解决方案,因为这样我相信当我删除一行时,整个表将获得每行的新编号。关于php的想法非常好,我将尝试实现。谢谢。
while($row = mysql_fetch_array($Query))
{
cont++;
echo '<tr id="myrow' . cont . '">
javascript:removefromcart('. $row['id'] .', ' . $cont ')...