AJAX&访问数据库时{J 44ERY}

时间:2018-02-08 10:53:41

标签: javascript jquery mysql ajax

美好的一天!

使用AJAX&时遇到问题访问我的数据库时发出JQUERY。 从互联网上搜索后,这个脚本(我认为)适合我的问题。我试图模仿它但失败了。 Using JQuery AJAX and php to fetch data from a mysql database

我的代码: userValidation.php

include '..\assets\database\connect.php';
$userLN = $_GET['userLN'];
$userFN = $_GET['userFN'];
// $userMN = $_GET['userMN'];
$regStatus='';

$i=0;
$getInfo = array();
$valLN=$valFN=$valMN='';
$query = "SELECT studLastname, studFirstname, studMiddlename FROM tblstudentinfo ";
$query .= "WHERE studLastname=? AND studFirstname=?";
$stmt = $conn->prepare($query);
$stmt->bind_param('ss',$userLN,$userFN);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0){
    $stmt->close();
    $conn->close();
    $regStatus='exist';
}else{
    $regStatus='not exist';
}
echo json_encode($regStatus);

的index.php

$('#btnNext').click(function() {
    var regStatus='';
    var urlParam='';
    var LN = document.getElementById('studRegLN').value;
    var FN = document.getElementById('studRegFN').value;
    urlParam="userLN="+LN+"&userFN="+FN;
    $.ajax({
      url: 'ajax/userValidation.php',
      data: urlParam,
      type: 'GET',
      dataType: 'json',
      success: function(data)
      {
        regStatus=data;
        alert(regStatus);
      }
    });
  });

我的情景: 当管理员用户注册学生助理时,它将输入姓氏和名字。当在访问页面的下一部分之前点击下一个按钮时,它将首先验证S.A(学生助理)是否已经存在。

所以有$regStatus& var regStatus变量...我想使用alert();只是为了测试变量是否从$ regStatus传递到regStatus(java变量)。

但如果您有更好的方法,请随时发布您的推荐+代码。谢谢

更新 这些是我的截图,证明代码不起作用 enter image description here enter image description here

注意下一个按钮...我只是点击了那个,但没有alert(getStatus)弹出

3 个答案:

答案 0 :(得分:1)

使用此更改您的ajax。

$('#btnNext').click(function() {
        var regStatus='';
        var urlParam='';
        var LN = document.getElementById('studRegLN').value;
        var FN = document.getElementById('studRegFN').value;
        urlParam="userLN="+LN+"&userFN="+FN;
        $.ajax({
            url: 'ajax/userValidation.php',
            data: urlParam,
            type: 'GET',
            dataType: 'json',
            success: function(data){
              regStatus=data;
            }
        });
    });

答案 1 :(得分:1)

一些问题:

1)不对您的查询字符串参数值进行URL编码,尤其是因为它们具有名称,并且可能很容易包含查询字符串中不允许的字符。让jQuery通过将对象作为"数据"来处理这个问题。注:您也可以考虑将此请求作为POST发送,然后值将在请求正文中,并且不会导致查询字符串出现问题。

2)在您宣布"点击"之前,您是否要等到文档满载之前还不清楚。事件处理程序在问题的早期版本中,你有一个document.ready阻止里面的点击处理程序,这没有任何意义。如果您还没有,请将您的按钮单击代码包装在document.ready处理程序中,以确保在您尝试绑定到DOM时,您的按钮已经存在于DOM中。另外,请确保您使用了正确的ID选择器 - 我无法看到您的HTML,因此无法为您检查。

3)Ajax调用是异步的,因此请将警报置于"成功"如果你想查看regStatus的更新值,可以使用Priyank建议的功能。否则警报会在ajax调用完成之前运行,因此您无法看到更新后的值

4)我们不清楚您使用了什么类型的按钮(同样,您的问题中缺少HTML),但如果它是提交类型,那么它将回发同时页面除非您在JS代码中明确地阻止它。如果它回发,那么页面将被销毁,你的ajax请求将不会运行,或者它的响应将丢失,因为它运行的页面被销毁。

将这些全部放在一起应该会产生这样的结果:

{{1}}

答案 2 :(得分:-1)

Ajax Call应该就像。

    var lanme=document.getElementById('studRegLN').value;
    var fname=document.getElementById('studRegFN').value;
    $.ajax({
     url: 'ajax/userValidation.php',
     type:'GET', /* GET or POST */     
     data: {
            userLn:lname,
            userFn:fname
            },
     dataType: 'json',
     success: function(data)
     {
       regStatus=data;
     }
    });

嘿,我是Stack的新手,因为英语不好而抱歉。