带有文本的输入表单的PHP - 在表单焦点更改时执行MySQL查询

时间:2015-07-22 11:14:19

标签: php forms

我正在寻找有关如何在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>';

非常感谢你的帮助!

2 个答案:

答案 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()

在我看来,这是一种不好的方法