【发布时间】:2014-01-03 09:09:06
【问题描述】:
我有一个由函数加载器调用的 PHP 代码,该代码仅在数据表中的 onInitCreate 事件上触发。我想要做的是,当用户点击add button 时,它必须在select 字段中加载教师姓名。
我已经尝试过这段代码,但它什么也没返回,或者我应该说一个空值。我相信它应该正好返回一行。 这是我的 PHP 代码,用于获取教师名称并返回它。
getFacultyNames.php
<?php
error_reporting(-1);
require_once("config.php");
$sql="SELECT lastName, firstName, middleName FROM table_faculty";
$result = mysql_query($sql);
$stack=array();
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($result))
{
$name = $row[0]." ,".$row[1]." ".$row[2];
array_push($stack,array("label" => $name, "value" => $name));
}
echo json_encode($stack); //here it returns [{"label":"Last ,First Middle","value":"Last ,First Middle"}]
?>
jquery代码:
function loader(){
$.ajax({
"url": 'php/getFacultyNames.php',
"async": false,
"dataType": 'json',
"success": function (json) {
console.log( json );
//the getFacultyNames.php is now returning correct values,
//but how would I be able to get the value of the json code properly?
//it always throws an error ""parsererror" SyntaxError
//is it proper to have a code `return json;` in this success function?
},
"error" : function( jqXHR, textStatus, errorThrown ){ console.log( jqXHR, textStatus, errorThrown ); }
});
}
这是我的编辑器初始化代码:
var editor = new $.fn.dataTable.Editor( {
"ajaxUrl": "php/table.facultyloading.php",
"domTable": "#facultyloading",
"events": {
"onInitCreate":function (){
editor.add( {
"label": "Assign to Faculty",
"name": "facultyName",
"type": "select",
"ipOpts":loader() // Returns array of objects - .ajax() with async: false
});
}
},
"fields": [
{
"label": "Subject Name",
"name": "name",
"type": "select",
"ipOpts": [
{
"label": "sample",
"value": "sample"
}
]
},
{
"label": "Day",
"name": "day",
"default": "Monday",
"type": "checkbox",
"ipOpts": [
{
"label": "Monday ",
"value": "Monday "
},
{
"label": " Tuesday ",
"value": " Tuesday "
},
{
"label": " Wednesday ",
"value": " Wednesday "
},
{
"label": " Thursday ",
"value": " Thursday "
},
{
"label": " Friday ",
"value": " Friday "
},
{
"label": " Saturday",
"value": " Saturday"
}
],
"separator": "|"
},
{
"label": "Start Time",
"name": "startTime",
"type": "text"
},
{
"label": "End Time",
"name": "endTime",
"type": "text"
},
{
"label": "Room",
"name": "room",
"type": "text"
}
]
} );
我似乎无法弄清楚出了什么问题。我错过了什么吗?你能帮帮我吗?
提前致谢!
【问题讨论】:
-
@bansi 谢谢。我稍后会修改它,但你认为这是它不起作用或没有返回任何值的原因吗?
-
不是原因,只是中肯的建议
-
@bansi,我很难确定 OP 到底在哪里写“我正在使用 PHP 5.5.0 或更高版本”...
-
@Harvey 可能发生了错误,将以下选项添加到您的
$.ajax函数"error" : function( jqXHR, textStatus, errorThrown ){ console.log( jqXHR, textStatus, errorThrown ); }以测试错误。
标签: php ajax jquery datatables jquery-datatables