Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Javascript 使用php从ajax向文本框中选择值_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 使用php从ajax向文本框中选择值

Javascript 使用php从ajax向文本框中选择值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,无论用户名是否可用,我都试图从数据库中获取结果。但是它没有给出任何结果我没有得到ajax响应这是html代码 <form id="user_form"> <input placeholder="username here" type="text" name="ajax-data" id="ajax-data"> <input type="submit" name="btnSubmit" id="btnSubmit" Value="Su

无论用户名是否可用,我都试图从数据库中获取结果。但是它没有给出任何结果我没有得到ajax响应这是html代码

<form id="user_form">
        <input placeholder="username here" type="text" name="ajax-data" id="ajax-data">
        <input type="submit" name="btnSubmit" id="btnSubmit" Value="Submit">
    </form>
    <span class="php_responce_here"></span>
这是我使用的ajax代码

     $(document).ready(function()
         {
    $("form#user_form").click(function()
    {
        var textboxvalue = $('input[name=ajax-data]').val();

        $.ajax(
        {
            type: "POST",
            url: 'second.php',
            data: {ajax-data: textboxvalue},
            success: function(result)
            {
                $(".php_responce_here").html(result);
            }
        });
    });
});​
                </script>
php的最后一段代码,我使用了验证和查询来查找数据库中是否有用户名。问题是它没有给出任何结果

         <?php
error_reporting(0); 
    require "config.php";// configuration file holds the database info

    $user_name = $_POST['ajax-data']; // textbox in the html


    if($user_name)
    {
        $usernamecheck=  mysql_query("SELECT count(*) FROM users WHERE username='$user_name'");
        $check=  mysql_fetch_row($usernamecheck);
        if($check[0]==0)
        {
            if($user_name!=""){
                if(strlen($user_name)>25){
                    echo "You have reached the maximum limit";
                }
                else{
                    echo "User name is valid";
                 }
            }
            else
            {
                echo "username is empty";   
            }
        }
        else{
           echo "Username Already Taken";
       }
    }

?>

应提交事件,而不是单击:

$("form#user_form").submit(function(e) {
    e.preventDefault();

    var textboxvalue = $('input[name=ajax-data]').val();

    $.ajax(
    {
        type: "POST",
        url: 'second.php',
        data: { "ajax-data": textboxvalue },
        success: function(result) {
            $(".php_responce_here").html(result);
        }
    });
});
正如@Cyril BOGNOU所指出的

data: { "ajax-data": textboxvalue }

应提交事件,而不是单击:

$("form#user_form").submit(function(e) {
    e.preventDefault();

    var textboxvalue = $('input[name=ajax-data]').val();

    $.ajax(
    {
        type: "POST",
        url: 'second.php',
        data: { "ajax-data": textboxvalue },
        success: function(result) {
            $(".php_responce_here").html(result);
        }
    });
});
正如@Cyril BOGNOU所指出的

data: { "ajax-data": textboxvalue }

例如,如果要返回JSON,也应该添加要随参数一起返回的数据类型

数据类型:“JSON”

是的,我认为你最好写

数据:{ajax数据:textboxvalue}

所以更新应该是

$(document).ready(function()
{
    $("form#user_form").click(function()
    {
    var textboxvalue = $('input[name=ajax-data]').val();

    $.ajax(
            {
                type: "POST",
                url: 'second.php',
                dataType: 'JSON',
                data: {"ajax-data": textboxvalue},
                success: function(result)
                {
                    $(".php_responce_here").html(result.message);
                }
        });
    });
});
并从PHP脚本返回json字符串

<?php

error_reporting(0);
require "config.php"; // configuration file holds the database info

$user_name = $_POST['ajax-data']; // textbox in the html


if ($user_name) {
    $usernamecheck = mysql_query("SELECT count(*) FROM users WHERE username='$user_name'");
    $check = mysql_fetch_row($usernamecheck);
    if ($check[0] == 0) {
        if ($user_name != "") {
            if (strlen($user_name) > 25) {
                $message = "You have reached the maximum limit";
            } else {
                $message = "User name is valid";
            }
        } else {
            $message = "username is empty";
        }
    } else {
        $message = "Username Already Taken";
    }
    echo json_encode(["message" => $message]);
}

?>

例如,如果要返回JSON,也应该添加要随参数一起返回的数据类型

数据类型:“JSON”

是的,我认为你最好写

数据:{ajax数据:textboxvalue}

所以更新应该是

$(document).ready(function()
{
    $("form#user_form").click(function()
    {
    var textboxvalue = $('input[name=ajax-data]').val();

    $.ajax(
            {
                type: "POST",
                url: 'second.php',
                dataType: 'JSON',
                data: {"ajax-data": textboxvalue},
                success: function(result)
                {
                    $(".php_responce_here").html(result.message);
                }
        });
    });
});
并从PHP脚本返回json字符串

<?php

error_reporting(0);
require "config.php"; // configuration file holds the database info

$user_name = $_POST['ajax-data']; // textbox in the html


if ($user_name) {
    $usernamecheck = mysql_query("SELECT count(*) FROM users WHERE username='$user_name'");
    $check = mysql_fetch_row($usernamecheck);
    if ($check[0] == 0) {
        if ($user_name != "") {
            if (strlen($user_name) > 25) {
                $message = "You have reached the maximum limit";
            } else {
                $message = "User name is valid";
            }
        } else {
            $message = "username is empty";
        }
    } else {
        $message = "Username Already Taken";
    }
    echo json_encode(["message" => $message]);
}

?>

空页?没有打印出来

<?php
  error_reporting(-1);
  ini_set('display_errors', 1);

  require "config.php";// configuration file holds the database info  

  if(isset($username = $_POST['ajax-data'])){
    if($l = strlen($username) <= 25 && $l > 2){
      $sql = "SELECT * FROM users WHERE username='$username'"; // wide open for SQL injections. use mysqli or PDO instead.
      if($rsl = mysql_query($sql) != false){ // ALWAYS verify if your query's ran successfully.
        if(mysql_num_rows($rsl) != 0){
          echo 'Username already exists';
        } else {
          echo 'Username is available';
        }
      } else {
        echo 'Query failed: ' . mysql_error();
      }
    } else {
      echo $l > 25 ? 'Reached limit' : 'Needs to be longer';
    }
  } else {
    echo "post['ajax-data'] not set<\br>";
    print_r($_POST);
  }

?>

空页?没有打印出来

<?php
  error_reporting(-1);
  ini_set('display_errors', 1);

  require "config.php";// configuration file holds the database info  

  if(isset($username = $_POST['ajax-data'])){
    if($l = strlen($username) <= 25 && $l > 2){
      $sql = "SELECT * FROM users WHERE username='$username'"; // wide open for SQL injections. use mysqli or PDO instead.
      if($rsl = mysql_query($sql) != false){ // ALWAYS verify if your query's ran successfully.
        if(mysql_num_rows($rsl) != 0){
          echo 'Username already exists';
        } else {
          echo 'Username is available';
        }
      } else {
        echo 'Query failed: ' . mysql_error();
      }
    } else {
      echo $l > 25 ? 'Reached limit' : 'Needs to be longer';
    }
  } else {
    echo "post['ajax-data'] not set<\br>";
    print_r($_POST);
  }

?>
注意:mysql已弃用。您应该使用mysqli或PDO

您的代码中有一些错误。检查下面的代码。它应该会起作用

<script>
    $(document).ready(function () {
        $("form").submit(function (event) {
            var textboxvalue = $("#ajax-data").val();
            $.ajax({
                data: {ajaxdata: textboxvalue},
                type: "POST",
                url: 'second.php',
                success: function (result)
                {
                    $(".php_responce_here").html(result);
                }
            });
            return false;
        });
    });
</script>
您应该使用mysql\u num\u行而不是mysql\u fetch\u行。它将自动计算行数

检查工作状态

注意:mysql已被弃用。您应该使用mysqli或PDO

您的代码中有一些错误。检查下面的代码。它应该会起作用

<script>
    $(document).ready(function () {
        $("form").submit(function (event) {
            var textboxvalue = $("#ajax-data").val();
            $.ajax({
                data: {ajaxdata: textboxvalue},
                type: "POST",
                url: 'second.php',
                success: function (result)
                {
                    $(".php_responce_here").html(result);
                }
            });
            return false;
        });
    });
</script>
您应该使用mysql\u num\u行而不是mysql\u fetch\u行。它将自动计算行数


检查工作状态

首先,您应该使用mysql\u num\u行而不是mysql\u fetch\u行。首先,您应该使用mysql\u num\u行而不是mysql\u fetch\u行。任何代码都不工作,屏幕上没有显示任何内容!!因此,请看一下错误报告0;//在开发时禁用报告?进行ini设置“显示错误”,1;错误报告-1任何代码都不工作,屏幕上没有显示任何内容!!因此,请看一下错误报告0;//在开发时禁用报告?进行ini设置“显示错误”,1;和错误报告-1