如何将值和内容插入到数据库中单独的单独列。它是一个下拉菜单。像
<select name="name" id="name">
<option value="000">Please select</option>
<option value="calendar.gif">Animal Welfare</option>
<option value="calendar1.gif">Art and Cultural</option>
<option value="calendar2.gif">Career Related</option>
</select>
对于“动物福利”实例,想要将“calendar.gif”插入一列,将“Animal welfare”插入另一列。
答案 0 :(得分:2)
存储选项=&gt;数组中的值组合。然后,您可以使用此数组进行插入和显示,例如
$options = array (
'calendar.gif' => 'Animal Welfare',
'calendar1.gif' => 'Art and Cultural',
'calendar2.gif' => 'Career Related'
);
if (isset($_POST['name']) && array_key_exists($_POST['name'], $options)) {
// valid option submitted
$key = $_POST['name'];
$value = $options[$key];
// now you can insert $key and $value
}
// to display
?>
<select name="name" id="name">
<option value="">Please select</option>
<?php foreach ($options as $key => $value) : ?>
<option value="<?php echo htmlspecialchars($key) ?>">
<?php echo htmlspecialchars($value) ?>
</option>
<?php endforeach ?>
</select>
答案 1 :(得分:1)
只有value
属性中的字符串才会发送到服务器。
如果你也想要文本节点,你需要使用JavaScript(可能是XHR)。
使用JavaScript的示例可能是......
var selectedOptionTextNode = document.createElement('input');
selectedOptionTextNode.type = 'hidden';
selectedOptionTextNode.name = 'selected-text-node';
document.body.appendChild(selectedOptionTextNode);
document.getElementsByTagName('select')[0].addEventListener('change', function() {
selectedOptionTextNode.value = this.options[this.selectedIndex].innerHTML;
}, false);
现在文本节点也将提交给服务器。
但是,到目前为止,执行此操作的最佳方法是每Phil's answer,即将密钥与服务器上的值相关联。