How would I make an associative array (or some parable alternative) in jQuery AND send that array via ajax to a php page so that I can use php to handle it?
Something like this...
// jQuery
if($something == true) {
data[alt] = $(this).attr('alt');
data[src] = $(this).attr('src');
else if ($something == "something else") {
data[html] = $(this).html();
}
Then, send this array using the .ajax() function
// jQuery
$.ajax({
data: /* somehow send my array here */,
type: 'POST',
url: myUrl,
plete: function(){
// I'll do something cool here
}
});
Finally, parse this data with php...
// php
<img alt="<?PHP echo $_POST['alt']; ?>" src="<?PHP echo $_POST['src']; ?>" />
I've done a little googling on the subject and have read that you cannot make an associative array with javascript so I'm really just looking for some alternative. Thanks in advance.
How would I make an associative array (or some parable alternative) in jQuery AND send that array via ajax to a php page so that I can use php to handle it?
Something like this...
// jQuery
if($something == true) {
data[alt] = $(this).attr('alt');
data[src] = $(this).attr('src');
else if ($something == "something else") {
data[html] = $(this).html();
}
Then, send this array using the .ajax() function
// jQuery
$.ajax({
data: /* somehow send my array here */,
type: 'POST',
url: myUrl,
plete: function(){
// I'll do something cool here
}
});
Finally, parse this data with php...
// php
<img alt="<?PHP echo $_POST['alt']; ?>" src="<?PHP echo $_POST['src']; ?>" />
I've done a little googling on the subject and have read that you cannot make an associative array with javascript so I'm really just looking for some alternative. Thanks in advance.
Share Improve this question asked Aug 17, 2010 at 1:47 JohnJohn 3,9166 gold badges34 silver badges39 bronze badges3 Answers
Reset to default 4You can pass the data as an object to $.ajax()
, like this:
var data = {};
if ($something == true) {
data.alt = $(this).attr('alt');
data.src = $(this).attr('src');
}else if ($something == "something else") {
data.html = $(this).html();
}
$.ajax({
data: data,
type: 'POST',
url: myUrl,
plete: function(){
// I'll do something cool here
}
});
This will get serialized for the post, internally using $.param(obj)
to convert it for the POST, for example:
alt=thisAlt&src=thisSrc
or:
html=myEncodedHtml
Won't it be simpler to just send some json to the php side, then use the json_decode function in php to get an associative array on the php side?
Associative array is sortof a PHP thing. But you can have something similar via curly braces ({}). In fact, you're already using it in your $.ajax()
call. Notice the '{}' parts. In this case, you can use json_decode()
in the PHP server to decode the 'data' parameter:
$.ajax({
url: myUrl,
data: { foo: 0, bar: 1, baz: 2 },
success: function() { },
dataType: 'json'
});
`
Using json_decode() will get you something like:
php
array('foo' => 0, 'bar' => 1, 'baz' => 2);
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745255995a4618959.html
评论列表(0条)