我已经运行了一些返回id的代码,现在我需要返回id和name。我觉得这应该是非常容易的,但我很难做到这一点。我试图破坏这些值,仍然无法使$ name起作用。
代码:
<select name="id" required="true" value="<?php echo $row['name']; ?>">
<?php
$row="SELECT id, name FROM modules";
while ($row = $stmt->fetch()){
echo "<option value=\"" . $row['id'] . "\">" . $row['name'] . "</option>";
}
list($id,$name) = explode(".",$_GET['id']);
echo $name;
?>
</select>
如果可能的话,我希望能够从下拉菜单中获取ID和名称。
答案 0 :(得分:1)
这样做:
<select name="id" required="true" value="<?php echo $row['name']; ?>">
<?php
$row="SELECT id, name FROM modules";
while ($row = $stmt->fetch()){
echo "<option value=\"" . $row['id'] . '|' . $row['name'] . "\">" . $row['name'] . "</option>";
}
?>
</select>
然后:
list($id,$name) = explode("|",$_GET['id']);
echo $name;
答案 1 :(得分:0)
HTML表单会发送一个选择框的值(在这种情况下,它是您的$row['id']
),而不是显示文本(在您的情况下为$row['name']
)。
如果未指定值,将显示显示文本。如果你想要两者,你可能必须使用Javascript将显示文本分配给选中的隐藏字段,这也将被发布。
这是一个jQuery示例:
<script>
$(document).ready(function() {
$('#id').change(function() {
var display_text = $( "#id option:selected" ).text();
$('#hidden_field').val(display_text);
});
});
</script>
<select name="id" required="true" value="<?php echo $row['name']; ?>">
... etc
<input type="hidden" name="hidden_field" id="hidden_field">
此示例应将所选选项的显示文本分配给#hidden_field
,该文本将与表单的其余部分一起发布,然后在PHP中:
<?php
$selected_value = $_POST['id'];
$selected_display = $_POST['hidden_field'];
?>
答案 2 :(得分:-1)
您必须在选项标记的value属性中包含id和name,由某个字符分隔(如果您确信name和id永远不会包含句点,则可能是'。')。