[英]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.