我是菜鸟,所以希望你能提供帮助!
我有以下 jquery 代码:
$("#single-home-container").html(post_id);
然后它会在页面的 HTML 中显示我想要的值:
<div id="single-home-container"></div>
我想要的是将值传递给 PHP 变量,以便我可以在 MySQL 查询中使用该信息。我该怎么做?它在 WordPress 中,所以没有单独的文件
谢谢
你需要使用ajax。像这样的东西:
查询:
$('.locationID').click(function(){
var post_id = $(this).attr('rel'),
$container = $("#single-home-container");
old_html = $container.html();
$container.html('loading...');
$.ajax({
url : '/path/to/php/file.php',
data:{"post_id":post_id},
type: 'post',
dataType: 'json',
success: function(data){
$container.html(data.postBody);
},
error: function(data){
// possibly notify the user of the error
$container.html(old_html);
}
});
});
假设您的帖子表中有一个名为 postBody 的字段
PHP
<?php
header('Content-type: application/json');
// $query_result = do mysql query with $_POST['post_id']
echo json_encode($query_result);
exit();
?>
这假设您想要所有字段并且您要返回所有字段,包括 postBody - 当然您有 PHP 5.2.6+ 或他们添加的任何版本json_encode()
。
您可以使用jQuery.post()或jQuery.ajax()。
这里有一些例子:
<script>
$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");
</script>
<script>
$.ajax({
url: "test.html",
context: document.body,
success: function(){
$(this).addClass("done");
}
});
</script>