基于列表项从JQuery获取结果

时间:2013-06-19 07:04:25

标签: php javascript jquery ajax json

从导航中获取列表ID后,我必须将id发送到返回JSON列表的php文件。

这是我的jquery语法

$("#ul_navigation li").click(function(e) {
        idsec = this.id;
        alert(idsec);
        $.getJSON("spage.php", { ids : idsec }, function(data,result){
            $("#divPage").show("slow");
            $('#divPage').append(result.content[0].title)
                         .append(result.content[0].full_text);
        }, JSON); 
        e.stopPropagation();
    });

并将其放入名为divpage的div id。

这是我的spage.php语法

<?php
//get necessary file associate
include_once 'configuration.php';
$q = mysql_real_escape_string(($_GET['ids']));
$sql = "SELECT title, full_text FROM ** WHERE id =" . $q;
$result = mysql_query($sql);
$title_array = array();
$cname = array();

while ($r = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $cname['title'] = html_entity_decode($r['title']);
    $cname['full_text'] = html_entity_decode($r['full_text']);

    array_push($title_array, $cname);
}

echo '{"content":' . json_encode($title_array) . '}';
?>

这返回JSON数组,如:

{"content":[{"title":"Test Post 900","full_text":"Full Text"}]}

但它不起作用。有什么建议吗?

更新

在id上显示结果后,如果我想将结果存储在html组件中怎么做? (例如,标题位于<h2>,文字结果位于<p>

这是html语法

   <div id="divPage" style="display: none;">
                <h2 id="divPage_header"></h2>
                <p id ="divPage_content"></p>
   </div>
谢谢。

3 个答案:

答案 0 :(得分:0)

成功回调函数的第一个参数是请求的data

$("#ul_navigation li").click(function(e) {
    idsec = this.id;
    alert(idsec);
    $.getJSON("spage.php", { ids : idsec }, function(data){
        $("#divPage").show("slow");
        $('#divPage').append(data.content[0].title)
        .append(data.content[0].full_text);
    }, JSON); 
    e.stopPropagation();
});

答案 1 :(得分:0)

您需要引用该JSON参数:

$("#ul_navigation li").on('click', function(e) {
    e.stopPropagation();
    $.getJSON("spage.php", { ids : this.id }, function(result){

        var p  = $('<p />',  {text: result.content[0].title}),
            h2 = $('<h2 />', {text: result.content[0].full_text});

        $("#divPage").show("slow").append(h2, p);
    }, 'JSON');  // missing quotes
});

在PHP中,请远离已弃用的mysql_*函数,因为它们不安全 并且不要这样回应:

echo '{"content":'.json_encode($title_array).'}';

做:

$json = array('content' => $title_array);
echo json_encode($title_array);

确保你的回音​​是有效的

答案 2 :(得分:0)

$("#ul_navigation li").click(function(e) {
    idsec = this.id;
    alert(idsec);
    $.getJSON("spage.php", { ids : idsec }, function(result){
        $("#divPage").show("slow");
        var appendHTML = '<div id="divPage">'+
                           '<h2 id="divPage_header">'+result.content[0].title+'</h2>'+
                           '<p id ="divPage_content">'+result.content[0].full_text+'</p>'+
                           '</div>';
        $('#divPage').append(appendHTML);
    }, JSON); 
    e.stopPropagation();
});