【发布时间】:2017-06-06 02:24:43
【问题描述】:
我通过从下拉列表中选择选项来动态添加表行,然后我尝试使用 ajax 作为 json 格式的数组将 html 表行发送到 php 函数。但是,当我提交多行时,php 函数不会打印控制台日志中的所有行。我得到了一次或两次所需的输出。我想我在 php 函数中遗漏了一些东西。请检查一次。如果需要有关代码的更多信息,请告诉我,我会更新。
Javascript:
function storeClgValues() {
var CollegeData= new Array();
$('#collegetable tr').each(function(row, tr){
CollegeData[row]={
"college" : $(tr).find('td:eq(0)').text()
}
});
CollegeData.shift();
return CollegeData;
}
$('#submit').click(function() {
CollegeData=storeClgValues();
CollegeData=$.toJSON(CollegeData);
$.ajax({
type:"POST",
url: '<?php echo base_url();?>ajaxController/insertcollege',
data: "CollegeData=" + CollegeData,
success: function(msg) {
console.log(CollegeData);
console.log(msg);
}
});
});
AjaxController 类中的 PHP 函数:
public function insertcollege()
{
$data=array();
$data=stripcslashes($_POST['CollegeData']);
$data=json_decode($data, TRUE);
//echo $data[0]['college'].'<br>';
//echo $data[1]['college'].'<br>';
if (is_array($data) || is_object($data))
{
foreach ($data as $key => $item) {
echo $item['college'].'<br>';
}
}
}
三次尝试在控制台输出:
[{"college":"College of Agriculture"}]
College of Agriculture
[{"college":"College of Agriculture"},{"college":"College of Business"}]
College of Agriculture
College of Business
[{"college":"College of Agriculture"},{"college":"College of Business"}, {"college":"College of Comm & Educati"}]
<!--nothing gets printed-->
【问题讨论】:
-
选择多行与选择单行相比,
$data=json_decode($data, TRUE);之后的 $data 的 print_r 或 var_dump 是什么样的? -
另外,当您选择多行时,$_POST 的 print_r 会是什么样子?
-
这真的很奇怪。我不知道是什么导致了问题。但有时我得到输出,有时我没有得到响应。像这样打印的 $data 上的 Print_r。数组([0] => 数组([college] => 农学院)[1] => 数组([college] => 商学院))
-
您的页面上是否有多个 id="submit" 的元素?
-
或多行 id="collegetable"?还认为 Ajax 帖子可能在 storClgValues 完成它需要做的事情之前发生。
标签: php jquery json ajax codeigniter