尝试从以下位置发送数组:
<select name='galaddvenn[]' class='sel_add vl hidden' multiple='multiple'>
<option value='53'>name1</option>
<option value='352'>name2</option>
<option value='632'>name3</option>
<option value='543'>name4</option>..etc
</select>
......来自Jquery,来自:
var ar = $("select#galaddvenn").serialize();
j.ajax({
data: ({ar : ar}), //tried with 'ar':ar
dataType: "html",
type:"post",
url: "/ajax_gal_addvenn.php",
cache: false,
....等 到PHP:
if(isset($_POST['ar'])){
$ar = mysql_real_escape_string($_POST['ar']);
var_dump($ar);
给我:bool(假):(
我在这里做错了什么?
答案 0 :(得分:3)
.serialize()
自己获取一个完整的POST字符串,因此它的格式如下:
galaddvenn=53&galaddvenn=352&galaddvenn=632
所以你的电话应该是这样的:
j.ajax({
data: ar,
dataType: "html",
type:"post",
url: "/ajax_gal_addvenn.php",
cache: false
});
然后在PHP方面,你正在寻找$_POST['galaddvenn']
。
答案 1 :(得分:0)
mysql_real_escape_string()
需要一个字符串。您不能在阵列上使用它。查看docs以获取更多信息。您应该使用循环来执行此操作:
foreach ($_POST['ar'] as $key => $element) {
$_POST['ar'][$key] = mysql_real_escape_string($element);
}
如果您收到此类错误,则应在操作之前测试您的传入数据(例如,在应用var_dump()
之前使用mysql_real_escape_string()
)。