发送AJAX获取请求

时间:2014-01-16 18:27:47

标签: php jquery

我刚刚开始研究AJAX,我已经遇到了一些麻烦 我使用users字段创建了数据库和表id, name, email 然后我创建了php文件db.php来连接数据库

<?php 
$dblocation = "localhost";
$dbname = "test5";
$dbuser = "root";
$dbpasswd = "";

$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx) {
    exit ( "<p>Error.</p>" );
}

if ( ! @mysql_select_db($dbname, $dbcnx)) {
    exit ( "<p>Error.</p>" );
}
?> 

,创建文件get-user.php以返回ajax-request

的答案
<?php
include ("db.php"); 
$result = mysql_query("SELECT name, email FROM users WHERE id='$id'", $dbcnx);
return $result;
?>

这是我的index.php文件

<!DOCTYPE html>
<html>
    <head>
        <title>index</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
            $(document).ready(function () {
                $('#button-1').on('click', function () {
                    var id = $('#user-id').val();
                    $.ajax({
                        type: 'GET',
                        url: 'get-user.php',
                        datatype: "html",
                        data: id,
                        success: function (data) {
                            alert(data);
                        }
                    });
                });
            });
        </script>
    </head>
    <body>
        <h2>Title</h2>
        <input name="id" id="user-id" type="text" size="15" />
        <button id="button-1">Get data</button>
</html>

我想输入数字,点击按钮,从数据库中获取有关用户的信息,但我只得到空警报。如何使它工作?
很抱歉,我只是新手。

5 个答案:

答案 0 :(得分:3)

需要进行以下更改:

Ajax:data: id,data: "{id : id},
PHP:return $result;echo $result;
PHP&amp; MySQL的:

$result = mysql_query("SELECT name, email FROM users WHERE id='$id'", $dbcnx);
$row = mysql_fetch_array($result);
return $result[0] . ";" . $row[1];

答案 1 :(得分:1)

传递参数的正确方法是

$.ajax({
        type: 'GET',
        url: 'get-user.php',
        datatype: "html",
        data: { id: id },
        success: function (data) {
            alert(data);
        }
    });

php中返回像这样的值

<?php
include ("db.php"); 
$result = mysql_query("SELECT name, email FROM users WHERE id='$id'", $dbcnx);
$fetch=mysql_fetch_array($result);
return $fetch["email"];
?>

答案 2 :(得分:1)

试试这个,

<强>使用Javascript:

$.ajax({
    type: 'GET',
    url: 'get-user.php',
    datatype: "html",
    data: {id:id},
    success: function (data) {
          alert(data);
       }
  });
get-user.php中的

<?php        
  if(isset($_GET['id'])){
        include ("db.php"); 
        $id = $_GET['id'];
        ....
  }
?>

注意:使用mysqli_ *函数或PDO而不是mysql_ *函数(不建议使用)

答案 3 :(得分:1)

你非常接近,但有一些事情你需要改变。

首先在你的ajax调用中:

$.ajax({
    type: 'GET',
    url: 'get-user.php',
    datatype: "html",
    data: {'id': id},
    success: function (data) {
        alert(data);
    }
});

注意data选项中的更改。

其次,在get-user.php内,您使用$_GET['id']来引用该值。

最后,您需要return代替echo

答案 4 :(得分:1)

Ajax代码

data: {id: id};

php code

使用pdo而不是mysql_query,你在mysql_query上使用的代码不会阻止sql注入。

include ("db.php"); 

$id = $_GET['id'];

$stmt = $pdo->prepare('SELECT name, email FROM users WHERE id = :id');
$stmt->execute(array('id' => $id));
$result = $stmt->get_result();

echo $result;

或使用mysqli

$stmt = $dbConnection->prepare('SELECT name, email FROM users WHERE id = ?');
$stmt->bind_param('id', $id);

$stmt->execute();

$result = $stmt->get_result();

echo $result;
相关问题