我正在尝试制作一个订单页面,通过javascript添加多个产品。 PHP / HTML代码是:
<?php $module_row = 0; ?>
<tbody id="module-row<?php echo $module_row; ?>">
<tr>
<td><select name="prod[]"><?php foreach ($products as $product) { ?><option value="<?php echo $product['ID']; ?>"><?php echo $product['name']; ?></option></td><td><a onClick="addProd();">Add New</a></td>
</tr></tbody>
<?php $module_row++; ?>
我的Javascript代码是:
var module_row = <?php echo $module_row; ?>;
function addProd() {
html = '<tbody id="module-row' + module_row + '">';
html += ' <tr>';
html += ' <td class="left"><select name="prod[]">';
<?php foreach ($products as $product) { ?>
html += ' <option value="<?php echo $product['ID']; ?>"><?php echo $product['name']; ?></option>';
<?php } ?>
html += ' </select></td></tr></tbody>';
$('#module tfoot').before(html);
module_row++;
现在,我想在以后添加的行中显示产品数组,以显示上面选择的产品的产品下拉列表。我检查了很多论坛,但找不到解决方案来获得上面选择的下拉值。有什么想法吗?
答案 0 :(得分:1)
要启用和禁用选择选项,this JS fiddle之类的内容可能有所帮助。请注意,它禁用了在多个选择框中选择相同内容的可能性。
至于您发布的代码示例,您在foreach之后错过了一个PHP结束括号(}
)。
此外,您可以使用<?= $var ?>
作为<?php echo $var ?>
试试这个:
<?php
$products = [
[
'ID' => 123,
'name' => 'product1',
],
[
'ID' => 456,
'name' => 'product2',
],
];
$module_row = 0;
?>
<tbody id="module-row <?= $module_row; ?>">
<tr>
<td>
<select name="prod[]">
<?php foreach ($products as $product) { ?>
<option value="<?= $product['ID']; ?>">
<?= $product['name']; ?>
</option>
<?php } ?>
</td>
<td>
<a onClick="addProd();">Add New</a>]
</td>
</tr>
</tbody>
<?php $module_row++; ?>