我的网站上有一个简单的输入表单供人们输入提交信息。在他们没有输入任何内容的情况下,代码看起来像这样:
这是form.php
if ($_POST['q']) == NULL ){
echo "Please enter your information"
代码工作得很好,但它将用户发送到带有echo的form.php,我想让它在输入框正下方的主页index.html上回显 - 基本上它不会离开这页纸。这是可行的PHP或我需要一些JavaScript。我本来想找到方法来做这个,但我不知道这个方法叫什么。
谢谢!
答案 0 :(得分:0)
不要在网址中设置操作,它会提交给自己,如果仍然无法工作,则需要重写规则。
答案 1 :(得分:0)
如果在输入字段下面有一个值else,则可以将其回发到自身,然后将页面重定向到post.php?q = value。
<?php
$qisempty = false;
if(!empty($_POST['q']))
{
header("Location:http://../post.php?q=".$_POST['q']);
}
else
$qisempty = true;
?>
<input name="q" type="text">
<?php if($qisempty) echo "Please enter your information";?>
答案 2 :(得分:0)
如果您不想离开页面,则需要使用Javascript。将onSubmit添加到表单,然后让您调用的函数返回false,如果输入未完成且不应提交表单。
答案 3 :(得分:0)
你可以使用AJAX来做这件事。当您不想重新加载页面以在特定位置执行任务或者HTML页面的Div时,AJAX非常适合此类问题。
对于您的问题,您需要创建一个包含表单的HTML文件,并通过AJAX提交。并通过相同的AJAX获得您的回复。
<script type="text/javascript">
function submit_ajax(val1,val2,param1,param2,subfile){
var http = new XMLHttpRequest();
var url = subfile;
var params = val1+"="+param1+"&"+val2+"="+param2;
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
//Remove the alert and use whatever you want to do with http.responsetext like
// document.getElementById("YourDiv").innerHTML=document.getElementById("YourDiv").innerHTML +http.responsetext
}
}
http.send(params);
}
</script>
</head>
<body>
<form>
<input type="text" id="user" value="user" name="user" />
<input type="password" id="password" value="pass" name="pass" />
<button onclick="submit_ajax(user.name,password.name,user.value,password.value, "submit_file.php");">Submit</button>
</form>
<div id="YourDiv">
<!--Something appears here after callback-->
</div>
这是第一页。现在在您的PHP文件中使用您的脚本(可能是submit_file.php),然后通过验证或其他东西在您的div中回显您想要的文本..样本将是
<?php
$username=$_POST['user'];
$password=$_POST['pass'];
if(validateuser($username,$password)){
if(checkuserpass($username,$password){
echo "You were successfully logged in!";
}
echo "Sorry Username/Password Mismatch";
}
else {
echo "There was an error in your input!Please Correct";
}
?>
希望你得到你想要的东西......
答案 4 :(得分:-1)
最简单的方法是将错误消息分配给一个名为(例如$ errorMsg)的变量 使用回声或打印功能在页面上打印。
<?php
if ($_POST['q']) == NULL ){
$errorMsg =' Please enter your information';
}
?>
将此代码放在您希望出现错误的位置
<? print $errorMsg; ?>