Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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 添加包含表单元素的新行&;一个PHP值_Javascript_Php - Fatal编程技术网

Javascript 添加包含表单元素的新行&;一个PHP值

Javascript 添加包含表单元素的新行&;一个PHP值,javascript,php,Javascript,Php,我有一个表,当按下按钮时,它会添加一个新行。这是: <table id='editTable' width='655' border='1'>"; <tr><th width='330' align='left'>Expense Description</th><th width='100'>Cost</th></tr> $result = mysqli_query($con,"SELECT ID,TASK_I

我有一个表,当按下按钮时,它会添加一个新行。这是:

<table id='editTable' width='655' border='1'>";
<tr><th width='330' align='left'>Expense Description</th><th width='100'>Cost</th></tr>

$result = mysqli_query($con,"SELECT ID,TASK_ID,EXPENSE_DESC,EXPENSE_COST FROM b_report_expense2 WHERE TASK_ID = $taskid AND REF = $referenceID");
while($row = mysqli_fetch_array($result))
{
$expenseDesc = $row['EXPENSE_DESC'];
$expenseCost = $row['EXPENSE_COST'];
$exID = $row['ID'];
<tr><td><input type='hidden' name='ref[]' value='$exID' /><input type='text' name='expense[]' value='$expenseDesc'></td>
<td><input type='text' name='expensecost[]' value='$expenseCost'></td></tr>
}

<tr><td colspan='2'><button class='no-style-button' type='button' onclick='displayResult2()'>Add Row</button><input type='submit' name='submit' value='submit'></td></tr></table>
”;
费用说明费用
$result=mysqli_query($con,“从b_report_expense2中选择ID、TASK_ID、EXPENSE_DESC、EXPENSE_COST,其中TASK_ID=$taskid和REF=$referenceID”);
while($row=mysqli\u fetch\u数组($result))
{
$expenseDesc=$row['EXPENSE_DESC'];
$expenseCost=$row[“费用成本];
$exID=$row['ID'];
}
添加行
当按下add new row(添加新行)按钮时,它会添加新行,但是它不会将$exID识别为循环中的值。下面是javascript:

function displayResult2()
{
var table=document.getElementById("editTable");
var row=table.insertRow(1);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
cell1.innerHTML= "<input size='5' type='hidden' name='refID' value='$referenceID' style='padding:2px;'/><input type='text' name='expenseaddition[]' style='padding:2px;' size='80'>";
cell2.innerHTML="<input type='text' name='expensecostaddition[]' style='padding:2px;' size='6'>";
}
函数displayResult2()
{
var table=document.getElementById(“编辑表”);
var行=table.insertRow(1);
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
cell1.innerHTML=“”;
cell2.innerHTML=“”;
}
新行被添加到其他行上方的表顶部。现在问题在于javascript中未识别$referenceID。页面声明新行已添加到该行,但未识别该行。此javascript正在从外部文件调用到页面,这就是问题所在吗


非常感谢您的帮助。

问题在于PHP是服务器端的,而JS是客户端的。这意味着JS将在页面提供给用户后执行。因为PHP变量仅存在于服务器上,所以JS会以字符串的形式插入
$referenceID

要解决这个问题,您可以将
$referenceID
的值输出到JS变量:

<script>
 var referenceID = <?php echo $referenceID?>; //If $referenceID isn't a numeric value, remember to use quotes (`'<?php echo $referenceID?>'`)
</script>
<!--Then include your JS-->
<script src="location" type="text/javascript"></script> 

当你说“此javascript正在从外部文件调用到页面”时,你的意思是像页面上的
-标记一样吗?我在你发帖之前就想到了这一点,但谢谢你,它现在起作用了:-)对不起,这真的应该说打败我了!
cell1.innerHTML= "<input size='5' type='hidden' name='refID' value='"referenceID"' style='padding:2px;'/><input type='text' name='expenseaddition[]' style='padding:2px;' size='80'>";