Reputation: 485
Trying to send an array from:
<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>
...to/from Jquery with:
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,
....etc to PHP:
if(isset($_POST['ar'])){
$ar = mysql_real_escape_string($_POST['ar']);
var_dump($ar);
Gives me: bool(false) :(
What am i doing wrong here?
Upvotes: 0
Views: 195
Reputation: 630349
.serialize()
gets a complete POST string by itself, so it'll be formatted like this:
galaddvenn=53&galaddvenn=352&galaddvenn=632
So your call should look like this:
j.ajax({
data: ar,
dataType: "html",
type:"post",
url: "/ajax_gal_addvenn.php",
cache: false
});
Then on the PHP side, you're looking for $_POST['galaddvenn']
instead.
Upvotes: 3
Reputation: 30996
mysql_real_escape_string()
expects a string. You cannot use it on your array. Check the docs for further information. You should use a loop to do this:
foreach ($_POST['ar'] as $key => $element) {
$_POST['ar'][$key] = mysql_real_escape_string($element);
}
If you get errors like this, you should test your incoming data before manipulating them (e.g. use var_dump()
before applying mysql_real_escape_string()
).
Upvotes: 0