Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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 我的代码赢了';不能将文本写入表格单元格_Javascript_Php - Fatal编程技术网

Javascript 我的代码赢了';不能将文本写入表格单元格

Javascript 我的代码赢了';不能将文本写入表格单元格,javascript,php,Javascript,Php,今天是第二个问题,但它真的不起作用。 我有一张购物卡,左边有一张桌子,右边有一张,左边是你能买到的商品,右边是你卡上的商品。代码运行正常,但如果您在产品上单击两次,它会添加两个新行,因此我编辑了代码。不知怎的,当我现在点击它时,我不会得到任何结果。(哦,我把代码放在标记之间,今天早些时候是在onClick函数中) 函数addToTable(productName、productPrice){ var table=document.getElementById('cardtable'); var

今天是第二个问题,但它真的不起作用。 我有一张购物卡,左边有一张桌子,右边有一张,左边是你能买到的商品,右边是你卡上的商品。代码运行正常,但如果您在产品上单击两次,它会添加两个新行,因此我编辑了代码。不知怎的,当我现在点击它时,我不会得到任何结果。(哦,我把代码放在标记之间,今天早些时候是在onClick函数中)


函数addToTable(productName、productPrice){
var table=document.getElementById('cardtable');
var行=table.insertRow(-1);
var rowCount=table.rows.length;
警报(行计数);
对于(变量i=0;i
下一个代码是PHP,它使用MySQL数据库中的数据生成一个表(工作正常!)

($i=0;$i{ $iprice=数字_格式((浮动)$productprices[$i],2,',',',''); 回音( " $PRODUCTNAME[$i] $iprice " ); }

所以问题是,因为我把for语句,而不仅仅是现在在else中的,所以没有任何东西在运行。 我知道代码中还有一个错误,但它应该运行。(如果出现其他情况,则创建多个新行)

这将产生无效的javascript代码。您必须将字符串包装到

 echo "... onclick=\"addToTable('$productnames[$i]',$iprice)\" ... "
这现在是有效的Javascript,但无效的PHP(-usage)。要生成有效的PHP:在
-字符串中,可以使用变量,但不能使用方法调用或数组访问。使用:

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

看起来您给多个元素赋予了相同的“id”值,这会导致问题。“id”值在整个页面中必须是唯一的。我不确定,但是,我认为您应该在这行代码
{$PRODUCTNAME[$I]}中加上花括号
@pointy kan我使用类?是的,你可以使用类。谢谢,我将使用类。它将再次将其添加到表中,因此这是一个发展:p问题是,我现在将其添加到表中:$PRODUCTNAME[$I]$iprice1,所以它不是这样挑选php变量的。哦,我明白了,我会在几分钟内把正确的代码放在这里minutes@RikNijhuis同样的原因。正确地转义变量。:)它现在正在运行,但我的float-iprice变量现在在我的表中是一个整数,你能告诉我为什么吗?@RikNijhuis你正在使用
number\u格式
来格式化你的价格。Y您将
作为十进制分隔符传递,因此,当值为
2.33
时,生成的javascript调用将是
addToTable('aString',2,33)
-生成的javascript认为您将传递3个参数,因此您的第二个参数是
2
,而不是
2.33
。或者使用
作为小数分隔符(
addToTable(
aString',2.33)
就可以了),或将值也作为字符串传递。在向用户呈现值时执行格式化始终是一个好主意,否则请坚持使用原始数据格式。
 echo "... onclick='addToTable($productnames[$i],$iprice)' ... "
 echo "... onclick=\"addToTable('$productnames[$i]',$iprice)\" ... "
 echo "... onclick=\"addToTable('".$productnames[$i]."',$iprice)\" ... "