我有一些问题。首先,我想将我的数据存储到数组集合中。然后将数据传递给控制器提交。这是我的代码
Ajax.php
$("#submit").click(function() {
var total = 3;
var photos = new Array();
for(var i = 0; i < total; i++)
{
photos[i] = $('#thumbnail'+i+'').children('img').attr('src');
var collection = {
'no' : i,
'photo' : photos[i]
};
}
$.ajax({
type: "POST",
url: "<?php echo base_url()?>create/submit",
data: {collection : collection},
cache: false,
success: function(response)
{
console.log(response);
alert('success');
window.location = '<?php echo base_url()?>create/submit';
}
});
});
[编辑]
控制器
function submit()
$collection = $this->input->post('collection');
print_r($collection);
if(is_array($collection)) {
foreach ($collection as $collect) {
echo $collect['no'];
echo $collect['photo'];
}
}
else
{
echo 'collection is not array!';
}
}
RESULT
collection is not array!
基于PeterKa解决方案,我在我的控制台中得到了这个 在控制台
Array
(
[0] => Array
(
[no] => 0
[photo] => https://scontent.cdninstagram.com/hphotos-xap1/t51.2885-15/s320x320/e15/11176494_1106697872689927_2104362222_n.jpg
)
[1] => Array
(
[no] => 1
[photo] => https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s320x320/e15/11376044_838742186174876_410162115_n.jpg
)
[2] => Array
(
[no] => 2
[photo] => https://scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/s320x320/e15/11381470_878168042272606_1132736221_n.jpg
)
)
但是,我的控制器中的结果并没有像预期的那样。
答案 0 :(得分:6)
collection
变量是循环的本地变量,并不包含您迭代的所有数据。相反,尝试这样的事情,虽然你真的不需要一个对象来停止索引和src
- 一个简单的一维数组会做:
$("#submit").click(function() {
var total = 3;
var photos = new Array();
for(var i = 0; i < total; i++)
{
var collection = {
'no' : i,
'photo' : $('#thumbnail'+i+'').children('img').attr('src')
};
photos.push( collection );
}
$.ajax({
type: "POST",
url: "<?php echo base_url()?>create/submit",
data: {collection : photos},
cache: false,
success: function(response)
{
console.log(response);
alert('success');
window.location = '<?php echo base_url()?>create/submit';
}
});
});
您发送的数据格式为:
photos = [
{
"no": 1,
"photo":"this is a link"
},
{
"no": 2,
"photo":"this is a link"
},
{
"no": 3,
"photo":"this is a link"
}
]
答案 1 :(得分:4)
您已为所有thumbnail
添加<a>
作为课程。
然后像这样更改代码:
$("#submit").click(function () {
var total = 3;
var photos = new Array();
$('.thumbnail').each(function (i) {
photos.push($(this).attr("src"));
});
$.ajax({
type: "POST",
url: "<?php echo base_url() ?>create/submit",
data: {'collection': photos},
cache: false,
success: function (response)
{
console.log(response);
alert('success');
window.location = '<?php echo base_url() ?>create/submit';
}
});
});