javascript - Ajax 。发送数据到php文件

标签 javascript php ajax

美好的一天,我正在尝试在我的 Web 应用程序中使用 Ajax。但我有一个小问题。我尝试控制表单是否已注册某个用户名。但我的 JavaScript 似乎没有将 $_POST 值发送给 PHP。并在我有 $_POST['user'] 的行上未定义该用户的响应。

这是我所拥有的。

PHP:

<?php
$opt = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); 
$dsn ='mysql:dbname=someone;host=127.0.0.1;charset=utf8';
$user='someone';
$pswd='aaa';

$dbh = new PDO($dsn, $user, $pswd, $opt);
$query="SELECT 1 FROM users WHERE  username = :username";   
        $query_p=array(':username' => $_POST['user']); 

        try 
        { 
            $statment = $dbh->prepare($query); 
            $result = $statment->execute($query_p); 
        }catch(PDOException $e) 
        {
            echo "Can't run query: " . $e->getMessage();        
     } 
        $row = $statment->fetch();
        if($row){           
        return 0;
        }else {
        return 1;
        }
?>

因此它打开了与数据库的连接并运行查询

JavaScript:

function checkUser(e){
    var state1 = document.getElementById("alert_text");
    var u = document.getElementById("user").value;
    if(u != ""){

        state1.innerHTML = 'processing...';
        var request = new XMLHttpRequest();

        request.open("POST", "validation.php", true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
    var result=request.responseText;
alert(result);
   if(result==1){
        state1.innerHTML="OK";
    }else{
        state1.innerHTML="Alredy exists!";
    }
    }
  };
        request.send(u);
        var slova = request.responseText;
        }
}
document.getElementById("user").addEventListener("blur",checkUser,false );

所以从技术上来说它是ajax。

HTML:

<form id="check"  name="signUp" method="post">
 <p class="alert_text"></p>
   <label for="user">Username:</label><br />

   <input id="user" name="user"  type="text" ><br />

</form>

我真的不明白问题出在哪里......

最佳答案

您没有将用户名传递到 PHP 脚本中。您的 PHP 正在查找 POST 变量 $_POST['user'] – 在 JavaScript 中您发出 GET 请求,因此 PHP 脚本无需查找任何内容。

关于javascript - Ajax 。发送数据到php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35014073/

相关文章:

javascript - 调用具有多个参数的函数

javascript - 关于如何在播放器中为下一个/上一个添加自定义控件有什么想法吗?

php - Symfony JEditable 使用 url_for() 检索缓存结果

php - 在 PHP 中是否有替代数组的数据结构,我可以从中受益于不同的索引技术?

ajax - Grails:从AJAX响应获取对象/模型

ajax - 从单个浏览器排序 HTTP 调用

asp.net - UpdatePanel.Visible = true 没有效果

Javascript 复选框验证和长度

javascript - 同时进行 2 个 Ajax 调用并在两个调用完成后回调?

php - 在没有管理员连接的情况下使用 LDAP 在 Laravel 中进行身份验证/登录?