我有一些允许我使用javascript向结果表添加行的代码。基本上,我在一个表中设置了第一行,然后有一个add行按钮,它将复制该行。当我尝试添加一个下拉字段时,它可以很好地接受,该字段使用php来提取结果。当我单击按钮时,行仍然会添加,但是php下拉部分不会显示。
function addOpenResult() {
var openResults = document.getElementById("openResults");
var openResultsRow = openResults.insertRow(openResults.rows.length-1);
var col1html = "<td width='50'><input size='5' width='100' type='text' name='rsRD1' /></td>";
var col2html = "<td width='50'><input size='5' width='100' type='text' name='rsRD2' /></td>";
var col3html = "<td width='50'><input size='5' width='100' type='text' name='rsRD3' /></td>";
var col4html = "<td width='50'><input size='5' width='100' type='text' name='rsRD4' /></td>";
var col5html = "<td width='100'><input size='10' width='100' type='text' name='rsScore' /></td>";
var col6html = "<td width='200'><select name='playerID'><option selected>---- Select Player ---</option>" . <?php while ($trpRow=mysql_fetch_array($trpResult)) {extract($trpRow); echo '<option value=$playerID>$lastName, $firstName</option>' ;}?> . "</select></td>";
var col7html = "<td width='100'><input size='10' type='text' name='rsAmount' /></td>";
var col8html = "<td width='100'><input size='10' type='text' name='rsOtherWinnings' /></td>";
var col9html = "<td width='100'><input size='10' type='text' name='rsOtherValue' /><input type='hidden' name='catID' value='15'></td>";
var col1 = openResultsRow.insertCell(0); col1.innerHTML=col1html;
var col2 = openResultsRow.insertCell(1); col2.innerHTML=col2html;
var col3 = openResultsRow.insertCell(2); col3.innerHTML=col3html;
var col4 = openResultsRow.insertCell(3); col4.innerHTML=col4html;
var col5 = openResultsRow.insertCell(4); col5.innerHTML=col5html;
var col6 = openResultsRow.insertCell(5); col6.innerHTML=col6html;
var col7 = openResultsRow.insertCell(6); col7.innerHTML=col7html;
var col8 = openResultsRow.insertCell(7); col8.innerHTML=col8html;
var col9 = openResultsRow.insertCell(8); col9.innerHTML=col9html;
var col10 = openResultsRow.insertCell(9); col10.innerHTML=col10html;
}发布于 2014-12-30 20:24:43
您不正确地将JavaScript字符串与PHP连接在一起。变化
var col6html = "<td width='200'><select name='playerID'><option selected>---- Select Player ---</option>" . <?php while ($trpRow=mysql_fetch_array($trpResult)) {extract($trpRow); echo '<option value=$playerID>$lastName, $firstName</option>' ;}?> . "</select></td>";至
<?php
$options = "";
while ($trpRow=mysql_fetch_array($trpResult)) {
extract($trpRow);
$options .= "<option value=\"$playerID\">$lastName, $firstName</option>" ;
}
?>
var col6html = "<td width='200'><select name='playerID'>"+
"<option selected>---- Select Player ---</option>" +
<?php echo json_encode($options) ?> +
"</select></td>";发布于 2014-12-30 20:22:53
当生成页面时,PHP代码只在服务器端运行一次,然后发送到浏览器进行解释。如果查看页面的源代码,就会看到生成的JavaScript中有一个错误。从这一点来看,您生成的JavaScript字符串似乎没有引用。
var col6html = "<td width='200'><select name='playerID'><option selected>---- Select Player ---</option>" <?php while ($trpRow=mysql_fetch_array($trpResult)) {extract($trpRow); echo " + '<option value=$playerID>$lastName, $firstName</option>'" ;}?> + "</select></td>";我还没有测试过,但类似的东西应该可以做到。我在生成的代码中移动了级联操作符,并添加了引号。
发布于 2014-12-30 20:23:18
在Javascript字符串连接操作中,您使用的是PHP操作符.。您应该使用Javascript concat操作符+
也是
echo '<option value=$playerID>$lastName, $firstName</option>'还应该用双引号包装,因为您希望将其输出为Javascript字符串
echo '"<option value=$playerID>$lastName, $firstName</option>"'
https://stackoverflow.com/questions/27711933
复制相似问题