我對jQuery和AJAX很新。Ajax與jQuery
我讀了一點點的jQuery在其網站上提供的API對此表示:
例子:警報了從請求的test.php(HTML或XML,根據返回的)的結果。
$.post("test.php", function(data){
alert("Data Loaded: " + data);
});
現在,我想知道test.php如何返回一些數據。我的意思是,有人可以在這裏提供一個樣本「test.php」
謝謝! :D
我對jQuery和AJAX很新。Ajax與jQuery
我讀了一點點的jQuery在其網站上提供的API對此表示:
例子:警報了從請求的test.php(HTML或XML,根據返回的)的結果。
$.post("test.php", function(data){
alert("Data Loaded: " + data);
});
現在,我想知道test.php如何返回一些數據。我的意思是,有人可以在這裏提供一個樣本「test.php」
謝謝! :D
你可以只返回一個簡單的字符串。無論輸出是URL參數將由您使用的是特定的AJAX方法來捕獲:
<?php echo 'this is a test'; ?>
如果你想返回一個更復雜的結構(如JSON),你可以這樣做:
<?php
$data = array('foo' => 'bar');
echo json_encode($data);
?>
,並在客戶端上:
$.post("test.php", function(json){
alert("Data Loaded: " + json.foo);
}, "json");
test.php
看起來是這樣的:
<tag>Data!!!</tag>
否<?php
標籤必要。
如果你使用JSON(這是一個不錯的選擇。很多東西),你可以創建一個PHP對象或數組,然後做:
<?php echo json_encode($my_object); ?>
<?php echo 'return data'; ?>
什麼情況是,瀏覽器會向給定的URL發出請求,就像任何其他web請求一樣,除了瀏覽器不顯示結果;它把它交給你,這樣你就可以用它做你想要的。
回訪複雜的PHP對象爲JSON對象,你的JavaScript進行交互,請json_encode()
比方說,如果你有test.php的
<?php
echo "test data from test.php"
?>
消息一些代碼被傳遞給javascript的數據變量,並最終會收到警報。
一些有用的鏈接
下面是示例,並且簡單的應用
索引。PHP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><!-- Insert your title here --></title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function register(){
$.ajax({
type: "POST",
url: "submit_data.php",
data: "username=" + document.getElementById("username").value +
"&email=" + document.getElementById("email").value,
success: function(html){
$("#response").html(html);
}
});
}
</script>
</head>
<body>
<form action="" method="post">
<p>
<label for="name">Name:</label><br />
<input type="text" name="username" id="name" size="25" />
</p>
<p>
<label for="email">Email:</label><br />
<input type="text" name="email" id="email" size="25" />
</p>
<p>
<input type="button" name="submit" id="submit" value="Subscribe" onclick="register()"/>
</p>
</form>
<div id="response">
<!-- Our message will be echoed out here -->
</div>
</body>
</html>
submit_data.php
<?php
// Variables
$db_host = 'localhost';
$db_user = 'user';
$db_pass = 'pass';
$db_name = 'db';
$Username = $_POST['username'];
$Email = $_POST['email'];
// DB
$connect = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
$connection = $connect;
mysql_select_db($db_name, $connect) or die(mysql_error());
// Inserting into DB
$qInsertUser = mysql_query(" INSERT INTO `database` (`id`, `username`, `email`)
VALUES (``, `$Username`, `$Email`)
");
if ($qInsertUser){
echo "You are now subscribed to our newsletter. Thank you!";
} else {
echo "Error!";
}
?>
因此,無論是呼應,被返回的數據,是嗎? – Anant 2010-09-22 13:37:34
您請求URL(和標題)指向的內容,所以是的。 – Harmen 2010-09-22 13:38:30
PHP文件不返回數據 - 它們產生頁面。 PHP文件的輸出就像一個純文本文件 - 你可以用'test.txt'替換'test.php',並把你想要的任何XML放在文本文件中。 – Skilldrick 2010-09-22 13:38:39