我正在尝试将javascript数组发送到CI控制器,但是数组是NULL我试过strigify但是输出数组仍然是null 请帮帮我。
这是脚本
<script type="text/javascript">
$(document).ready(function(){
$('#button').click(function(){
var TableData = new Array();
$('#sampleTbl tr').each(function(row, tr){
TableData[row]={
"Day" : $(tr).find('td:eq(0)').text(),
"A" :$(tr).find('td:eq(1)').text(),
"B" : $(tr).find('td:eq(2)').text(),
"C" : $(tr).find('td:eq(3)').text()
}
});
TableData.shift();
var fullname = $('#fullname').val();
console.log(TableData);
console.log(fullname);
var arr = JSON.strigify(TableData);
$.ajax({
url: '<?php echo base_url('site/ajax');?>',
type: 'POST',
datatype: 'json',
data: {arr: arr},
success: function(){
}
});
});
});
</script>
这是表格
<form action="<?php echo base_url()?>site/ajax" method="post">
<input type="text" id="fullname" name="fullname">
<input type="submit" name="button" id="button" value="button">
<table id="sampleTbl">
<tr>
<th>Days</th>
<th>coloum A</th>
<th>coloum B</th>
<th>coloum C</th>
</tr>
<tr>
<td>Sunday</td>
<td>sunday a</td>
<td>sunday b</td>
<td>sunday c</td>
</tr>
<tr>
<td>Monday</td>
<td>monday a</td>
<td>monday b</td>
<td>monday c</td>
</tr>
<tr>
<td>Tuesday</td>
<td>tuesday a</td>
<td>tuesday b</td>
<td>tuesday c</td>
</tr>
<tr>
<td>Wednesday</td>
<td>wednesday a</td>
<td>wednesday b</td>
<td>wednesday c</td>
</tr>
<tr>
<td>tdursday</td>
<td>tdursday a</td>
<td>tdursday b</td>
<td>tdursday c</td>
</tr>
<tr>
<td>Friday</td>
<td>friday a</td>
<td>friday b</td>
<td>friday c</td>
</tr>
<tr>
<td>Saturday</td>
<td>saturday a</td>
<td>saturday b</td>
<td>saturday c</td>
</tr>
</table>
</form>
这是控制器部分
public function ajax(){
$fullname = $this->input->post('fullname');
$arr = $this->input->post('arr');
$array = json_decode($arr);
echo "<pre>";
echo $fullname;
echo "<br>";
print_r($array);
// var_dump($_POST);
}
答案 0 :(得分:0)
JSON对象上没有“strigify”方法。
请改用此行:var arr = JSON.stringify(TableData);
答案 1 :(得分:0)
您不会在数据中发送key/value
对。只是一个字符串化数组的值。如果未指定密钥,$_POST
将为空
确实没有必要stringifiy
数组。 jQuery将在内部转换为表单编码数组。
尝试不使用它。
$.ajax({
method: "POST",
url: your_url,
data : {arr: arr},
dataType: "json"
})......
然后在控制器中:
public function ajax(){
$arr = $this->input->post('arr');
// So on ...
}