我正在尝试将数组从ajax传递到php(控制器)。
var_dump($data)
从第一个代码返回适当的内容而第二个返回NULL时,第二个代码有什么问题?
第一的。好的。
function myFunction() {
var elementy = document.getElementsByClassName('inputISBN');
var data = elementy[0].value;
$.ajax({
url: "{{ path('test') }}",
type: "POST",
data: { "data": data }
});
}
第二。坏的
function myFunction() {
var elementy = document.getElementsByClassName('inputISBN');
var data = [];
data[elementy[0].name] = elementy[0].value;
$.ajax({
url: "{{ path('test') }}",
type: "POST",
data: { "data": data }
});
}
第三。丑陋的
var elementy = document.getElementsByClassName('inputISBN');
undefined
var data = [];
undefined
data[elementy[0].name] = elementy[0].value;
"667"
第三个是在浏览器控制台中编写的第二代码中的逐行代码。它会返回它应有的状态。
编辑
并且数据从这里被拉出:
<input type="number" class="inputISBN" size="2" name="exampleName"
value="666" onchange="myFunction()">
将数组传递给PHP时,您要包括数组指示符:[]
。我thi8nk你需要一个对象:{}
。
function myFunction() {
var elementy = $('.inputISBN');
var data = {};
$.each(elementy, function(){
data[$(this).attr('name')] = $(this).val();
})
$.ajax({
url: "{{ path('test') }}",
type: "POST",
data: { "data": data }
});
}
此时,您可能还希望序列化数据(如@Adelphia在另一个答案中所提到的):
'data': JSON.stringify(data)
jsFiddle:https ://jsfiddle.net/Twisty/cw77ann7/
您可以在PHP中调用它: print_r($_POST['data']);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句