Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在AJAX中成功后重新启用提交按钮_Php_Jquery_Html_Ajax - Fatal编程技术网

Php 在AJAX中成功后重新启用提交按钮

Php 在AJAX中成功后重新启用提交按钮,php,jquery,html,ajax,Php,Jquery,Html,Ajax,在AJAX请求成功后,我一直在尝试启用提交按钮。验证在PHP文件中,该文件包含以下代码 if(!empty($_POST["username"])) { $fetch = "SELECT * FROM student WHERE std_username='" . $_POST["username"] . "'"; $result = mysqli_query($con, $fetch); $user_count = mysqli_num

在AJAX请求成功后,我一直在尝试启用提交按钮。验证在PHP文件中,该文件包含以下代码

    if(!empty($_POST["username"])) {

        $fetch = "SELECT * FROM student WHERE std_username='" . $_POST["username"] . "'";
        $result = mysqli_query($con, $fetch);
        $user_count = mysqli_num_rows($result);

        if($user_count>0) {
            echo "<span class='status-not-available'> Username Not Available.</span>";
        }else{
            echo "<span class='status-available'> Username Available.</span>";
        }
    }
我已经使用了这是成功它所做的是禁用提交按钮,即使数据与请求匹配或不匹配,按钮仍保持禁用状态

    $("#submit").attr("disabled", true);
并在错误

    $("#submit").attr("disabled", false);
我已经研究了这些问题并尝试了解决方案,但这些解决方案对我来说并不奏效

这是HTML

    <form method="POST">
        <label>Check Username:</label>
        <input name="username" type="text" id="username" class="demoInputBox" onBlur="checkAvailability()"><span id="user-availability-status"></span><br>    
        <label>Check Username:</label>
        <input name="email" type="text" id="email" class="demoInputBox" onBlur="checkAvailabilitye()"><span id="email-availability-status"></span> <br>
        <input type="submit" id="submit"> 
    </form>

检查用户名:

检查用户名:
提前谢谢

成功时使用此选项:

$("#submit").removeAttr("disabled");
而不是

$("#submit").attr("disabled", false);

要再次启用按钮,需要完全删除
disabled
属性。

在成功事件中,需要将
disabled
属性值设置为false。这将重新启用该按钮

$( "#submit" ).prop( "disabled", true ); //disable when ajax call starts

jQuery.ajax({
    url: "check_availability.php",
    data:'username='+$("#username").val(),
    type: "POST",
    success:function(data){
        $( "#submit" ).prop( "disabled", false ); //enable it back
        $("#user-availability-status").html(data);
        $("#loaderIcon").hide();
    },
    error:function (){}
    });
编辑:根据评论,

看起来您正试图根据对db表所做的检查来启用/禁用按钮。当前您的php脚本正在返回一个人类可读的字符串。可能您可以更改php脚本以返回javascript代码可以使用的标志值

if($user_count>0) {
        echo "no";
}else{
        echo "available";
}
在成功处理程序中,检查此值并隐藏/显示按钮/消息

success:function(data){
        $("#loaderIcon").hide();
        var msg="Not available";

        if(data=="available")
        {
          $( "#submit" ).prop( "disabled", false ); //enable it back
          msg="Username available";
        }
        $("#user-availability-status").html(msg);

},

我不是一个PHP的人。有一种方法可以从PHP页面返回JSON结构,它可以返回标志和要在message div中显示的消息。您也可以尝试一下。

现在看起来像这样,对吗?成功:函数(数据){$(“#用户可用性状态”).html(数据);$(“#loaderIcon”).hide();$(“#提交”).prop(“已禁用”,false);},错误:函数(){});对如果页面中没有任何其他脚本错误,并且您正在通过ajax调用命中成功事件,则该功能应该可以正常工作。请检查浏览器控制台中的脚本错误,并输入
console.log('success occured')
在成功处理程序中验证itI是否已尝试上述代码段,但如果输入的用户名与DB中的用户名匹配,则不会禁用按钮,反之亦然:(我已放置console.log(“成功发生”),结果没有任何错误,但按钮问题仍然存在:(您的问题是关于在成功处理程序中重新启用submit按钮。我的答案与您的验证脚本对db的作用无关。
success:function(data){
        $("#loaderIcon").hide();
        var msg="Not available";

        if(data=="available")
        {
          $( "#submit" ).prop( "disabled", false ); //enable it back
          msg="Username available";
        }
        $("#user-availability-status").html(msg);

},