我的代码不会将文本写入表格单元格

时间:2014-06-24 19:35:29

标签: javascript php

今天的第二个问题,但它真的不起作用。 我有一张购物卡,左边有一张桌子,左边有一张桌子,左边是你可以购买的产品,还有卡片上的产品。代码工作但是如果你在产品上点击了两次它添加了两个新行,所以我编辑了我的代码。不知怎的,当我点击它现在我没有得到任何结果。 (哦,我把我的代码放在标签之间,今天早些时候是我的onClick功能)

<script>
function addToTable(productName, productPrice){
    var table = document.getElementById('cardtable');
    var row = table.insertRow(-1);
    var rowCount = table.rows.length;

    alert(rowCount);
    for(var i =0; i < rowCount; i++) {
        var currentRow = table.rows[i];
        var text = currentRow.cells[0].innerText;

        if(text == '$productnames[$i]') {
            var currentValue = parseInt(row.cells[3].innerHTML);
            var newValue = currentValue + 1;
            currentRow.cells[2].innerText = newValue;
        }else {
            var cell1 = row.insertCell(0);
            cell1.id ='cardlefttd';
            var cell2 = row.insertCell(1);
            cell2.id ='cardcentretd';
            var cell3 = row.insertCell(2);
            cell3.id ='cardrighttd';

            cell1.innerHTML = '$productnames[$i]';
            cell2.innerHTML = '$iprice';              
            cell3.innerHTML = 1;
            }
    }
}
</script>

下一个代码是在PHP中,它使用来自MySQL数据库的数据创建一个表(它运行正常!)

for($i = 0; $i < sizeof($productnames); $i++) {
$iprice = number_format((float)$productprices[$i], 2, ',', '');

echo (
    "<tr id='producttablerow' onclick='addToTable($productnames[$i],$iprice)'>
        <td id=productlefttd>$productnames[$i]</td>
        <td id=productrighttd>$iprice</td>
    </tr>"
    ); 

}

所以问题是,因为我把for语句而不是现在的其他内容放在其他地方就没有了。 我知道代码中还有另一个错误,但它应该运行。 (如果是其他情况,则会生成多个新行)

1 个答案:

答案 0 :(得分:0)

 echo "... onclick='addToTable($productnames[$i],$iprice)' ... "

这将产生无效的javascript代码。你必须将字符串包装成'

 echo "... onclick=\"addToTable('$productnames[$i]',$iprice)\" ... "

现在这是有效的Javascript,但PHP(-usage)无效。要生成有效的PHP:在" - String中,您可以使用变量 - 但不能使用方法调用或数组访问。使用:

 echo "... onclick=\"addToTable('".$productnames[$i]."',$iprice)\" ... "