“$ .get”用于检索信息

时间:2014-12-16 20:45:54

标签: javascript php jquery mysql ajax

我正在尝试在数据库实时更新的任何时候获取一个简单的javascript弹出脚本。我不确定接下来要做什么,因为我仍然是jQuery和ajax的新手,但下面的代码就是我现在所拥有的:

PHP MySQL查询页面:

<?php

$con = mysqli_connect('localhost','root','root','mydb');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"mydb");
$sql = "SELECT * FROM incoming_calls";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result)) {
    //$callArray = array('phonenumber' => $row['phone_number'], 'id' => $row['phone_login_id']);
    if(!empty($row)) {
    $number = $row['phone_number'];
    }
}

$sql="SELECT Username, Password FROM tblUsers WHERE PhoneHome='$number' OR PhoneCell='$number' OR PhoneWork='$number'";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result)) {
    $userArray = array("username" => $row['Username'], "password" => $row['Password']);
    //echo json_encode($userArray);
}
    echo json_encode($userArray);

mysqli_close($con);
?>

HTML页面:

<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
<meta charset="utf-8"> 
<title>Phone calls</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<script language="javascript" type="text/javascript">
function getCall(){
  $.get("phonecall.php", function(data){
    var loginInfo = jQuery.parseJSON(data);
    var user = loginInfo.username;
    var pass = loginInfo.password;
    $('#username').html(user);
    $('#password').html(pass);
  });

/*$.getJSON("phonecall.php", function(data){
    for (var i=0, len=data.length; i < len; i++) {
        $('#username').html(data);
  }
 });*/
}
setInterval(getCall,5000);
</script>

<div id="username"></div>
<div id="password"></div>
</body>
</html>

我遇到的一个问题是当有2个或更多用户使用相同的电话号码时,比如家用电话,取决于json_encode的位置,将返回表中的最后一个条目,或者返回什么都没有。如果json_encode在while循环中,我可以检查控制台,它说正在检索信息,但是必须使用我的“$ .get”语法才能允许显示多个条目。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您只需保存一行数据:

while($row = mysqli_fetch_array($result)) {
    $userArray = array("username" etc...
             ^^^^---here

如果您有多行数据,则您获取的每一行都将覆盖$ userArray中的上一行。

你可能想要

$userArray[] = array("username" etc...
          ^^---- note these

所以你要创建一系列结果。

您还必须修改JS代码以接受数组数组,因为现在您只处理一个用户名/密码。