0

嗨,我在 jquery 中有一个函数,并使用 $.Post 在我的查询工作正常的 php 文件上发送数据并将数据发回

js

function send_agenda_data(cidade_data){
        var data = {'cidade_data':cidade_data};
        $.post('includes/agenda_data.php',data,function(info){

        });
    }

此功能工作正常,当我提醒数据返回时也工作正常

这是php

<?php
    include_once("connection.php");
    $cidade_data = $_POST['cidade_data'];

    if (isset($cidade_data)) {
        $sql = mysql_query("select * from agenda where cidade = '$cidade_data'", $con) or die(mysql_error());
        if (mysql_num_rows($sql) > 0) {
            while ($data = mysql_fetch_object($sql))
            {
                $date = $data->data;
                $cidade = htmlentities($data->cidade); 
                $estado = htmlentities($data->estado); 
                $local = htmlentities($data->local);            
                $endereco = htmlentities($data->endereco); 
                $site_local = htmlentities($data->site_local);
                $site_ingresso = htmlentities($data->site_ingresso); 
                $endereco = htmlentities($data->endereco); 
            }
        }
        else{
           echo "No Data";       
        }
    }

?>

如果我现在直接使用 php 并在标签中回显变量,这很好用

    $.post('includes/agenda_data.php',data,function(info){
                //need data here            
});

我想知道如何在此处获取 js 中的 php 返回数据以及如何将这些数据分配到标签中。还想知道 php 中有 while 循环,这里也会循环填充所有行吗?

如果我在我的网页中使用直接 php,那么我可以在 while 循环中这样使用

<div><?php echo $date; ?></div>
<div><?php echo $cidade; ?></div>
<div><?php echo $estado; ?></div>
<div><?php echo $local; ?></div>
.
.
.

我怎样才能进入 $.Post 案例

4

3 回答 3

0

您的循环有些不正确。您只需获取每一行的数据,然后在所有这些变量中覆盖前一行的数据。您应该构建一个结果数组,然后您可以将其发送到客户端 JS 代码。例如类似的东西

$data
while($row = mysql_fetch_assoc($result)) {
     $data[] = $row;
}

echo json_encode($data);

在客户端,您将收到一个可以迭代的对象数组:

$.post('includes/agenda_data.php',data,function(data){
    $.each(data, function(idx, row) {
        $('#date').innerHTML = row['date'];
        ...
    });
});

究竟你在那个 JS 循环中做什么取决于你。

另外,请注意您的 PHP 代码容易受到SQL 注入攻击

于 2013-09-06T14:11:22.937 回答
0

$.post 是一个 AJAX 调用,因此您需要在 PHP 中回显结果,以确保您可以使用结果。

尝试使用

echo json_encode($your_data)

要在客户端(浏览器)中使用数据,您可以使用 http://api.jquery.com/jQuery.parseJSON/

使用了 parseJSON,因此您可以更轻松地使用数据。

于 2013-09-06T14:13:45.480 回答
0

为什么不使用 jQuery 通过分配一个类来填充 div 的内容,如下例所示:

<div class="date"><?php echo $date; ?></ div>
<div class="cidade"><?php echo $cidade; ?></ div>
<div class="estado"><?php echo $estado; ?></ div>
<div class="local"><?php echo $local; ?></ div>

并且使用jQuery,成功$.post检索返回的信息并整合成这样。

$('.date').html(info[0]['date']);

于 2013-09-06T14:25:06.067 回答