簡體   English   中英

如何使用JSON和AJAX從PHP獲取數據

[英]How to get data from PHP with JSON and AJAX

我不明白如何使用json和ajax從PHP文件中獲取數據。 請幫幫我。

我試過了:

addnews.tpl:

    $("#send").click(function(e){
    e.preventDefault();
    $.ajax({
        url: "news.php?addnews",
        type: "POST",
        data: {
            title: $("#title").val(),
            text: $("#text").val()
        },
        beforeSend: function() {
            $(".loading").css({
                "display": "inline"
            });
        },
        success: function() {

        }
    }); 
});

$("#send").click(function () {
    $.ajax({
        type: 'GET',
        url: "news.php?addnews",
        data: {},
        dataType: 'json',
        success: function(data) {
            $('.message').html(data.error);
        },
        error: function(xhr){
            $('.message').html('error fetching data');
        }
    }); 
}); 

news.php:

    if(isset($_GET['addnews'])) {
    if(!isset($_SESSION['id'])) {
        echo json_encode(array("error" => "error."));
    }
    $news->addNews($_SESSION['id'], $_POST['title'], $_POST['text']);
    $smarty->display("template/addnews.tpl");       
}

另一個問題:如何在頁面上隱藏json數組(文本)?

未經測試

選擇postget Post已在以下代碼中使用。

addnews.tpl:

$("#send").click(function () {
    $.ajax({
        type: 'POST',
        url: "news.php",
        data: {
        title: $("#title").val(),
        text: $("#text").val(),
        addnews: //your add news value
        },
        dataType: 'json',
        success: function(data) {
            $('.message').html(data);
        },
        error: function(xhr){
            $('.message').html('error fetching data');
        }
    }); 
}); 

News.php

if(isset($_POST['addnews'])) {
    if(!isset($_SESSION['id'])) {
        echo json_encode("error");
    }else{
    $news->addNews($_SESSION['id'], $_POST['title'], $_POST['text']);
    // $smarty->display("template/addnews.tpl");
    echo json_encode("success");
    }      
}

如果您嘗試發布或獲取數據,則將同時調用兩個Onclick處理程序。 您需要將這兩個調用分開,並有一個將發布數據的調用和一個用於獲取數據的調用。 此外,在news.php您還需要添加邏輯以用於何時要發布以及何時要獲取類似

if(isset($_GET['addnews'])) {
    if(!isset($_SESSION['id'])) {
        echo json_encode(array("error" => "error."));
    }
    $smarty->display("template/addnews.tpl");       
}


if(isset($_POST['title']))
{
    if(!isset($_SESSION['id'])) {
        echo json_encode(array("error" => "error."));
    }
 $news->addNews($_SESSION['id'], $_POST['title'], $_POST['text']);  
}

回顯json_encode后,您需要從代碼中返回並且此后不打印任何內容,
如果這樣做,它將是無效的json。
例如

if(!isset($_SESSION['id'])) {
    echo json_encode(array("error" => "error."));
    return
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM