我在WordPress中有一个函数,可以处理将文件上传到WordPress图片库。将表单转换为 Ajax 后,我意识到文件上传不再有效。 问题是,如果我能让函数在 Ajax 之前执行,它就会起作用。 这是代码:
function insert_attachment($file_handler,$post_id,$setthumb='false') {
if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK){
return __return_false();
}
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$attach_id = media_handle_upload( $file_handler, $post_id );
if ($setthumb)
update_post_meta($post_id,'_thumbnail_id',$attach_id);
return $attach_id;
}
以下是我想在调用 Ajax 提交之前执行的调用:
foreach ($_FILES as $file => $array)
{
$newupload = insert_attachment($file,$post_id);
}
原因是$newupload
将文件发送到wordpress图像库,然后返回要插入到Ajax插入到的同一表中的attachmentID
。 因此,如果代码可以在 Ajax 之前运行,它将正常工作。 这可能吗?
点击后如何在后台运行PHP函数?
PHP 运行
在服务器上而不是客户端上,所以你问的事情只能在服务器上运行。
因此,ajax 调用在服务器上完成,并在回调中使用另一个 ajax 调用。
CAll ajax1 --> 回调 --> call ajax2
喜欢这个
$.ajax({
url: 'http://www.xxxxxxxxxxxxx',
data: {name: 'xxxxxx'},
dataType: 'jsonp',
success: function(data){
// do stuff
// call next ajax function
$.ajax({ xxx });
}
});