Javascript 从表行codeigniter中的下拉列表中获取值

Javascript 从表行codeigniter中的下拉列表中获取值,javascript,php,html,codeigniter,codeigniter-3,Javascript,Php,Html,Codeigniter,Codeigniter 3,我在从dropdownlist中获取值时遇到问题,该列表根据数据库使用foreach$data作为$d生成 代码是这样的 <table> <thead> <th>ID</th> <th>Action</th> </thead> <tbody> <?php foreach ($data as $d) {

我在从dropdownlist中获取值时遇到问题,该列表根据数据库使用foreach$data作为$d生成 代码是这样的

<table>
    <thead>
        <th>ID</th>
        <th>Action</th>
    </thead>
    <tbody>
        <?php
            foreach ($data as $d) {
        ?>
        <tr>
            <td><?php echo $d->id; ?></td>
            <td>
                <select name="option" id="option">
                    <option value="A" selected>A</option>
                    <option value="B">B</option>
                </select>
            </td>
        </tr>
    <?php } ?>
</tbody>
<form method="post" action="/url/to/post/form/to">
...
    <?php foreach ($data as $row): ?>
        <select name="options[<?php $row['id']; ?>]" id="option">
            <?php foreach ($row['values'] as $value): ?>
                <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
            <?php endforeach; ?>
        </select>
    <?php endforeach; ?>
...
</form>

name/id=“option”
对于每一个表行

<input type="hidden" id="id<?php echo $x; ?>" name="id<?php echo $x; ?>" value="<?php echo $d->id; ?>">

如果我正确理解了这个问题,下面是使用foreach循环创建列表项的select元素的正确实现

<select name="foo">
    <option value="0">-------</option>
    <?php 
        foreach($foo as $row)
            echo '<option value="'.$row->DataID.'">'.$row->Data.'</option>';
    ?>
</select>

-------

如果我正确理解了这个问题,下面是使用foreach循环创建列表项的select元素的正确实现

<select name="foo">
    <option value="0">-------</option>
    <?php 
        foreach($foo as $row)
            echo '<option value="'.$row->DataID.'">'.$row->Data.'</option>';
    ?>
</select>

-------

因此,假设您的数据是以数组形式构造的,例如

$data = [
    "A" => [
        "id" => 1,
        "values" => [
            "lorem",
            "ipsum",
            "donec"
        ]
    ],
    "B" => [
        "id" => 2,
        "value" => [
            "lorem",
            "ipsum",
            "donec"
        ]
    ],
    "C" => [
        "id" => 3,
        "value" => [
            "lorem",
            "ipsum",
            "donec"
        ]
    ],
];
将数组打印为下拉列表的操作如下

<table>
    <thead>
        <th>ID</th>
        <th>Action</th>
    </thead>
    <tbody>
        <?php
            foreach ($data as $d) {
        ?>
        <tr>
            <td><?php echo $d->id; ?></td>
            <td>
                <select name="option" id="option">
                    <option value="A" selected>A</option>
                    <option value="B">B</option>
                </select>
            </td>
        </tr>
    <?php } ?>
</tbody>
<form method="post" action="/url/to/post/form/to">
...
    <?php foreach ($data as $row): ?>
        <select name="options[<?php $row['id']; ?>]" id="option">
            <?php foreach ($row['values'] as $value): ?>
                <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
            <?php endforeach; ?>
        </select>
    <?php endforeach; ?>
...
</form>
注意:确保对字段及其值进行适当的验证,以防止应用程序中出现不必要的、不希望出现的行为

参考资料:




因此,假设您的数据是以数组形式构造的,例如

$data = [
    "A" => [
        "id" => 1,
        "values" => [
            "lorem",
            "ipsum",
            "donec"
        ]
    ],
    "B" => [
        "id" => 2,
        "value" => [
            "lorem",
            "ipsum",
            "donec"
        ]
    ],
    "C" => [
        "id" => 3,
        "value" => [
            "lorem",
            "ipsum",
            "donec"
        ]
    ],
];
将数组打印为下拉列表的操作如下

<table>
    <thead>
        <th>ID</th>
        <th>Action</th>
    </thead>
    <tbody>
        <?php
            foreach ($data as $d) {
        ?>
        <tr>
            <td><?php echo $d->id; ?></td>
            <td>
                <select name="option" id="option">
                    <option value="A" selected>A</option>
                    <option value="B">B</option>
                </select>
            </td>
        </tr>
    <?php } ?>
</tbody>
<form method="post" action="/url/to/post/form/to">
...
    <?php foreach ($data as $row): ?>
        <select name="options[<?php $row['id']; ?>]" id="option">
            <?php foreach ($row['values'] as $value): ?>
                <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
            <?php endforeach; ?>
        </select>
    <?php endforeach; ?>
...
</form>
注意:确保对字段及其值进行适当的验证,以防止应用程序中出现不必要的、不希望出现的行为

参考资料:




你能把这个问题再详细解释一下吗?我不确定您是在问如何用正确的数据填充选项,还是在问如何获取所选选项的值。@da39a3ee我编辑了它,也许它能帮上一点忙,对不起,我的英语不好。我编辑了我的答案。这就是你的意思吗?可能有更复杂的“更干净”的答案使用库,但在基本PHP中应该是这样的:)你能把这个问题再详细解释一下吗?我不确定您是在问如何用正确的数据填充选项,还是在问如何获取所选选项的值。@da39a3ee我编辑了它,也许它能帮上一点忙,对不起,我的英语不好。我编辑了我的答案。这就是你的意思吗?可能有更复杂的“更干净”的答案使用库,但在基本PHP中应该是这样的:)感谢您的回复,但是我对下拉列表元素使用了foreach循环no,但是对于表行,并且每行包含数据库中数据旁边生成的下拉列表,可能我的解释不好,sorry@Teletubbies听起来您需要一个双重嵌套的foreach循环。一个用于表行,另一个用于select元素。除非看到SQL查询,否则我无法确定。感谢您的响应,但我对下拉列表元素使用foreach循环no,但对于表行,以及每行包含与数据库中的数据一起生成的下拉列表,可能我的解释不太好,sorry@Teletubbies听起来您需要一个双重嵌套的foreach循环。一个用于表行,另一个用于select元素。除非看到SQL查询,否则我无法确定。感谢您的响应,但我对下拉列表元素使用foreach循环no,但对于表行,以及每行包含与数据库中的数据一起生成的下拉列表,可能我的解释不太好,sorrySo每一行都包含一个下拉列表,您想获取该嵌套下拉列表的值吗?感谢您的响应,但我对下拉列表元素使用foreach循环否,但对表行使用,并且每一行包含与数据库中的数据一起生成的下拉列表可能我的解释不好,sorrySo每一行都包含一个下拉列表,您想获取该嵌套下拉列表的值吗?