这是html结构:
<select name="marke" class="marke">
<option value="1">Bosch</option></select>
<select name="modell" class="modell">
<option value="2">Nocria 14 LBC</option></select>
这是我的Php字符串(简化)
$modellz = $_POST['marke']. ' ' .$_POST['modell'];
$insertQuery = "INSERT INTO producz (model)
VALUES
('" . $modellz . "')";
我试图将<option>
- 标签内的名称发布到数据库中。
但是使用这段代码我就得到了这些值。
所以当我运行这个时,我在数据库中得到1 2
。
但我想要Bosch Nocria 14 LBC
OBS:我需要我的jquery选择脚本的VALUE属性。
请帮忙!
答案 0 :(得分:4)
该选项的value
是传递给服务器的内容,如果您希望在选项中接收文本而只是完全删除value
属性:
<option>Nocria 14 LBC</option>
选择时会提交实际字符串。
除此之外,请阅读有关SQL注入的信息,因为您当前的PHP代码容易受到攻击。
答案 1 :(得分:1)
make value ='Bosch'或在你的php中创建一个数组,将'1'转换为你需要的字符串。
此:
<select name="marke" class="marke">
<option value="Bosch">Bosch</option></select>
<select name="modell" class="modell">
<option value="Nocria 14 LBC">Nocria 14 LBC</option></select>
或
<?
Options = Array();
Options['1'] = "Bosch";
Options["2"] = "Nocria 14 LBC";
?>
并使用选项[插入]来获取实际值
还记得使用mysql_real_escape_string或string-&gt; real_escape()来保证安全性
答案 2 :(得分:1)
问题出在HTML上。每个value
标记的<option>
是POST请求中发送的内容。
将HTML更改为:
<select name="marke" class="marke">
<option value="Bosch">Bosch</option></select>
<select name="modell" class="modell">
<option value="Nocria 14 LBC">Nocria 14 LBC</option></select>
你会看到你想要的结果。
另外,请在保存到数据库之前验证/清理表单输入。如果您正在使用mysql函数,请尝试mysql_real_escape_string()
。
如果jQuery需要访问每个选项的原始ID,我建议使用两种方法之一。为每个选项添加单独的属性,例如rel:<option value="Bosch" rel="1">Bosch</option>
,或保持代码不变(<option value="1">Bosch</option>
)并让PHP知道ID /值组合。
实际的数据库结构可以,并且可能应该,修改为支持实际ID而不是文本值。
答案 3 :(得分:0)
那是因为您需要将选项的值设置为Bosch和Nocria。 POST将选项值存储到相应的<select>
名称。
试试这个
<select name="marke" class="marke">
<option value="Bosch">Bosch</option></select>
<select name="modell" class="modell">
<option value="Nocria 14 LBC">Nocria 14 LBC</option></select>