我正在寻找有关如何在PHP中进行输入表单处理的一些帮助。
我需要的是当用户将数据写入文本格式(table1),并移动到另一个文本格式(如按TAB或用鼠标选择)时,它应该启动并查询MySQL以查看是否写入此类数据at table1已存在于匹配的MySQL表中。
我的目标是在不按提交按钮的情况下完成。像谷歌一样检查你想要注册的用户名是否存在。
我正在考虑这样的事情:
$duplicate_data_test ="";
if (focus has moved to another form field - how to check ?) {
$query = "SELECT table1 FROM testdatabase WHERE table1 = "' . (table1 from the form below - how to get data from the this form field without POST?) .'";
$result = mysqli_query($con,$query);
if(mysqli_num_rows($result)>0) {
$duplicate_data_test = "This data is already found in the database. Choose something else";
}
}
echo '<form action="'.htmlspecialchars($_SERVER["PHP_SELF"]).'" method="post">';
echo '<input type="text" maxlength="30" name="table1">';
echo '<span class="duplicaterror">'. $duplicate_data_test.' </span>';
echo '<input type="text" maxlength="30" name="table2">';
echo '<input type="submit" value="OK">';
echo '</form>';
非常感谢你的帮助!
答案 0 :(得分:2)
你不能做你的&#34;界面&#34;用php检查。 您的焦点已转移到另一个表单字段&#34;必须用javascript完成。
首先,使用像这样的HTML
构建表单<form name="testForm" action="postForm.php" method="POST" id="myForm">
<label>INPUT 1 : </label>
<input type="text" id="in1" value="" name="input1" />
<label>INPUT 2 : </label>
<input type="text" id="in2" value="" name="input2" />
<div style="color:red;font-weight:bold;" id="error"></div>
<button id="submitButton">SUBMIT</button>
</form>
然后在用户点击提交按钮时使用javascript / jquery&amp; ajax(阻止事件表单发布)像这样:
$(document).on('click','#submitButton',function(event){
event.preventDefault();
if($.trim($('#in1').val()) == ''){
//input 1 is empty
$("#error").html('INPUT ONE IS EMPTY');
}//....continue checks
最后,如果你的支票是好的,那么发表你的表格
$("#myForm").submit();
如果您的支票不好,则向用户显示一条消息!
$("#error").html("MESSAGE!");
我在jsfiddle上为你做了一个关于如何做到这一点的例子(它不是最好的方法,但它只是一个例子),请查看以下链接:http://jsfiddle.net/9ayo89jt/2/ < / p> 希望它有所帮助!
答案 1 :(得分:1)
检查是否存在某些内容需要进行AJAX调用
将查询数据库的查询放在一个单独的php文件中并使用AJAX调用
提交所有输入字段后,您将需要使用javascript ..检查字段1,2,3,...等。不是空的.. formName.submit()
在我看来,这是一种不好的方法