Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从表中删除TR_Javascript_Php - Fatal编程技术网

Javascript 从表中删除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 echo绘制一个表,其中包含来自SQL查询的一些数据。这是一个购物车脚本。因此,当客户单击从购物车中删除某些项目时,我想从表中删除该TR。为此,我将调用javascript函数“removefromcart”,传递项目ID和行索引。因此,此函数将从SQL中删除购物车中的项目,并使用行索引从表中删除TR。以下是我试图做到的:

        <?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 ')...