我首先要说的是,如果我想在我的PHP文件中接收一个表单并阅读已发送的select的多个值,它的工作原理如下:
foreach ($_POST["selectaddedsubj"] as $selectedOption)
echo $selectedOption."\n";
并且为了使其起作用,select的名称和id应该是这样的:
<select name="selectaddedsubj[]" id="selectaddedsubj[]" size="3" multiple="multiple">
</select>
但是,当我使用jQuery向它添加值时,只有从名称中删除[]时它才会起作用:
$("#selectaddedsubj").append($('<option>', {
value: subjname,
text: subjname,
selected: 'selected'
}));
而不是$("#selectaddedsubj[]").append
不能工作...... :(
我可以通过表单的SELECT变量以不同的方式在我的PHP页面上接收多个选择,而不是使用&#34; []&#34;在我的表格上?
答案 0 :(得分:1)
您的问题与jquery documentation page on selectors顶部的id="foo.bar"
示例非常相似。 CSS选择器语法需要引用包含特殊字符的标识符。引用它们的简单方法是在每个字符前加上反斜杠:
$("#selectaddedsubj\\[\\]")
(注意:javascript字符串文字中的双反斜杠会在实际字符串中产生单个反斜杠,因此CSS解析器会在此处看到#selectaddedsubj\[\]
。)
另一种方法,使用通用属性选择器语法而不是magic #
id语法,允许您通过引用整个标识符来避免使用反斜杠:
$("[id='selectaddedsubj[]']")