我試圖通過jQuery .ajax()發送一段數據到PHP腳本,然後將其加載到div容器中。然後PHP腳本將運行這段數據,其內容將返回到上述div容器中。通過.ajax()將數據傳遞給PHP腳本的正確方法是什麼?
最初,我寫了一段代碼(如下所示),它在單擊時成功添加了正確的元素,但無法正確命名它們,因爲它沒有將count_bucket變量傳遞給PHP。
var count_bucket = 4;
var loadPHP = "create_new_bucket.php";
$(".add_bucket").click(function(){
count_bucket++;
$("#tree_container2").append($('<div id="bunch' + count_bucket + '">').load(loadPHP));
return false;
});
然後,我試圖將count_bucket變量傳遞給PHP腳本,將代碼更改爲此(如下所示)。
var count_bucket = 4;
$(".add_bucket").click(function() {
count_bucket++;
var bucket_add = $.ajax ({
type: "GET",
url: "create_new_bucket.php",
data: var count_bucket,
dataType: "json",
async: false,
}).responseText;
$('#tree_container2').append($('<div id="bunch' + count_bucket + '">').load(bucket_add));
});
的PHP文件create_new_bucket.php看起來是這樣的:
<?php
include_once "test_functions.php"; // include functions page
$i = $_GET["count_bucket"];
drawBunchNew($i);
?>
我不清楚其中阿賈克斯的方面()不正確。我懷疑我沒有在PHP中正確收集變量,或者我使用不正確的語法將它傳遞給PHP文件。如果有人能幫助我識別錯誤,我將不勝感激。
*UPDATE* ** * **
感謝TEJS & Tandu。我很清楚如何構建數據,但我仍然無法使jQuery的全部工作。我採用了Tandu的建議來使用.load(),並將我的PHP更改爲使用POST來提取數據,但仍無法正常工作。
var count_bucket = 4;
$(".add_bucket").click(function() {
count_bucket++;
var bucket_add = $.load ("create_new_bucket.php", {count_bucket: count_bucket}, }).responseText;
$('#tree_container2').append($('<div id="bunch' + count_bucket + '">').load(bucket_add));
});
而且PHP是:
我用<?php
include_once "test_functions.php"; // include functions page
$i = $_POST["count_bucket"];
drawBunchNew($i);
?>
最後工作的jquery(最終PHP是與上述相同):
var count_bucket = 4;
var loadPHP = "create_new_bucket.php";
$(".add_bucket").click(function(){
count_bucket++;
$("#tree_container2").append($('<div id="bunch' + count_bucket + '">').load(loadPHP, {count_bucket: count_bucket}));
return false;
});
哪個版本的jQuery?我很好奇,因爲ajax在1.5版本中進行了重大改寫。這裏可能不會影響你。 – 2011-05-12 04:34:04