繁体   English   中英

将jQuery表单处理添加到现有php表单处理脚本的最佳方法?

[英]Best way to add jQuery form handling to existing php form handling script?

这是我的第一篇文章,所以请耐心等待;)

我的问题:

我使用自己的MVC。 该模型(即上传图像)包含一个php函数,该函数验证文件是否存在,匹配允许的扩展范围和允许的大小,然后上传文件。 它返回一个带有文件名的数组,这样我就可以在下一页上向用户显示哪些文件已上传,哪些文件尚未上传。

现在,我想添加jQuery功能。 jQuery,但是,不想有一个文件名“返回”的数组

return $messageArray;

但改为“回显”:

echo json_encode($messageArray);

但是:我不想更改php函数的回显。 为什么? php脚本在没有Java脚本的情况下应该可以正常工作。 仅应添加Javascript以使用户感到更舒适。

所以:您将如何基本计划php函数以返回“仅PHP”和jQuery的消息(存储在数组中)?

我正在考虑向该函数添加其他参数,例如:

$.Ajax({
type: 'POST',
URL: 'uploadhandler.php?files=...&jquery=true',
...
dataType: "json",
        success: function(data){...;},
    ...})

如果在php函数中参数jquery == true,我将回显结果而不是返回结果。

您将如何解决?

您可以使用以下PHP代码检查请求类型,而不是在AJAX请求中专门添加参数:

/**
 * Check to see if a page was requested using XMLHTTP (using AJAX for example)
 *
 * @return bool
 */
public function isAJAX()
{
    return !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}

然后在您的PHP方法中使用它:

if (isAJAX()) {
    echo $result;
} else {
    return $result;
}

这不是理想的方法,但它应该可以帮助您入门:)

非常感谢! 但是'HTTP_X_REQUESTED_WITH'对我不起作用-我读到$ _SERVER不是官方的PHP请求。

我想到了用ajax发送附加参数的想法(即“&query = query”)。 如果设置了参数“ query”,则php函数将输出“ echo”。 完美的作品!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM