我在父级.done
中有一个嵌套的jquery ajax调用。
它可以工作,但是,无论undefined
是否为空,在调用getProjectFiles(projectid)
的开头始终总是返回data
。
js:
function getProjects() {
//...some typical jquery code
ajaxRequest.done(function(data) {
//...append some stuff to html
$('#mydiv').append('some html stuff' + getProjectFiles(projectid));
}
}
function getProjectFiles(projectid) {
var func = 'getProjectFiles';
var args = [projectid];
var formData = {
'action': func,
'args': args
};
$.ajax({
type: 'post',
url: '../includes/ajax.php',
data: formData,
dataType: 'json'
});
ajaxRequest.done(function(data) {
if(data) {
$.each(data, function(i,v) {
$('div#'+projectid+'.project-box-files').append(v['filename']);
})
}
});
}
php:
//these are in a separate functions.php file
function pdoSelect($sql, $args) {
$pdo = dbConnect();
$stmt = $pdo->prepare($sql);
$stmt->execute($args);
$returnval = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($returnval);
}
function getProjectFiles($someParameters){
//db insert
$sql = 'SELECT blah blah';
$args = array($someArgs);
return pdoSelect($sql, $args);
}
//this one is in ajax.php
$func = $_POST['action'];
$args = $_POST['args'];
call_user_func_array($func, $args);
在{em> getProjectFiles()
之前,projectid
是否被“异步调用”?还是我需要某种“回调”格式来在getProjectFiles
中调用getProjects
?