如何将数值和内容插入数据库?

时间:2011-08-10 06:25:57

标签: php javascript mysql

如何将值和内容插入到数据库中单独的单独列。它是一个下拉菜单。像

<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”插入另一列。

2 个答案:

答案 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);

jsFiddle

现在文本节点也将提交给服务器。

但是,到目前为止,执行此操作的最佳方法是每Phil's answer,即将密钥与服务器上的值相关联。