【发布时间】:2014-04-20 18:50:32
【问题描述】:
我正在与 smarty 合作,想知道是否有办法将多个选择项发布到 MySQL。目前在提交表单时它只存储一个项目,尽管 设置为多个。
这是我的代码。
<select name="name" class="box-20" multiple="multiple">
<optgroup label="Clients">
{foreach from=$client item=client}
<option value="{$client.FNAME}">{$client.FNAME} {$client.LNAME}</option>
{/foreach}
</optgroup>
<optgroup label="Type">
{foreach from=$type item=type}
<option value="{$type.CTYPE}">{$type.CTYPE}<option>
{/foreach}
</optgroup>
</select>
这个输出
客户
<option value="Sam">Sam Adams</option>
<option value="nan">Jan John</option>
<option value="Lincoln">Lincoln Smith</option>
<option value="Julie">Julie Bliss</option>
键入
<option value="1">1</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
MySQL 代码
if(isset($VAR['submit'])) {
$sql = "UPDATE CLIENTS SET
NAME =".$db->qstr($VAR["name"])."
WHERE CUST = ". $db->qstr( $VAR['cust_id']);
if(!$result = $db->Execute($sql)) {
force_page('core', 'error&error_msg=MySQL Error: '.$db->ErrorMsg().'&menu=1&type=database');
exit;
}
}
即使我全部选择它们,它也只存储我在 MySQL 中选择的最后一个选项。 非常感谢大家!!
【问题讨论】:
-
您处理发布数据的代码在哪里?
-
我已经更新了帖子
-
不应该是
$_POST['name']而不是$VAR["name"] -
(1) 你们所有选择的选项的值都是
Sam,这是错误吗?还是您希望每个值都是Sam? (2) 你的最终目标是什么?UPDATE CLIENTS SET NAME = Sam Sam Sam或UPDATE CLIENTS SET NAME = Sam, Sam, Sam,或UPDATE CLIENTS SET NAME = Sam ... , UPDATE CLIENTS SET NAME = Sam。不明白为什么要在查询结构中选择多个名称。 -
抱歉 (1) 不正确的复制和粘贴。我已经更新了帖子。我的最终目标是将选定的客户端名称保存到 MySQL。像 Sam Adams、Jan John、Lincoln Smith……等等