今天的第二个问题,但它真的不起作用。 我有一张购物卡,左边有一张桌子,左边有一张桌子,左边是你可以购买的产品,还有卡片上的产品。代码工作但是如果你在产品上点击了两次它添加了两个新行,所以我编辑了我的代码。不知怎的,当我点击它现在我没有得到任何结果。 (哦,我把我的代码放在标签之间,今天早些时候是我的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语句而不是现在的其他内容放在其他地方就没有了。 我知道代码中还有另一个错误,但它应该运行。 (如果是其他情况,则会生成多个新行)
答案 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)\" ... "