我试图通过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