我有一个页面将表单发送到PHP脚本。我想以某种方式在脚本执行时将成功信息返回到页面。现在我不能使用jQuery AJAX请求,因为我的表单将文件提交到服务器,我想避免在可能的情况下将get参数附加到url。
我试过这样做:
$_REQUEST['status'] = 'File uploaded successfully';
但是,当我检查是否在我的页面上设置了这个变量时,我得到了错误。
这样做的最佳做法是什么?
答案 0 :(得分:2)
首先,你说I would like to avoid appending get parameters to the url
。如果这是您唯一关心的问题,您可以使用jQuery.post(),不使用任何查询参数。
但是如果你正确地解释了它,它只是发布到普通php脚本的普通表单。不是吗?在这种情况下,只需回显成功/失败信息:
$succes = do_something($_POST['my_posted_var']);
if($success) {
echo 'Yeah! It worked!';
} else {
echo 'This is disappointing...';
}
或将用户重定向到感谢页面。
header('Location: '. thanks.php);
编辑好了(见评论)。在这种情况下,使用会话。您可以在请求之间传输数据,而无需使用某种参数进行操作。请阅读this。总结一下,你可以做类似下面的事情:
=execution_script.php=
session_start();
// do your stuff
$_SESSION['status'] = 'succes'; // or failure for that matter
header('Location: status_view.php');
=status_view.php=
session_start();
echo 'Status: ' . $_SESSION['status'];
答案 1 :(得分:0)
1)。你可以重写网址 比如“index.php?msg = $ success” 在您的首页通过$ _REQUEST ['msg']来回复此消息。
2)。您可以使用大多数MVC框架正在使用的会话Flash消息尝试谷歌它,它将获得有关它的更多信息
答案 2 :(得分:0)
你可以这样做......试试吧
header('Location: welcome.php?status=File Uploaded Successfully..!!');.
然后使用
显示成功消息<?php if(isset($_REQUEST['status'])) echo $_REQUEST['status'];
header('Location: welcome.php');. ?>
或者您可以简单地执行此操作
header('Location: welcome.php?status=1');.
<?php if(isset($_REQUEST['status']=='1')) echo 'File Uploaded Successfully..!!';