获取上面所选选项的值

时间:2016-04-08 16:27:43

标签: javascript php jquery html mysql

我正在尝试制作一个订单页面,通过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++;

现在,我想在以后添加的行中显示产品数组,以显示上面选择的产品的产品下拉列表。我检查了很多论坛,但找不到解决方案来获得上面选择的下拉值。有什么想法吗?

1 个答案:

答案 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++; ?>
相关问题