[英]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數組(文本)?
未經測試
選擇post
或get
。 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.