【问题标题】:pass jquery value to php variable将 jquery 值传递给 php 变量
【发布时间】:2012-02-02 16:54:10
【问题描述】:

我是菜鸟,所以希望你能帮忙!

我有以下 jquery 代码:

$("#single-home-container").html(post_id);

然后它会在页面的 HTML 中显示我想要的值:

<div id="single-home-container"></div>

我想要将值传递给 PHP 变量,以便我可以在 MySQL 查询中使用该信息。 我该怎么做?它在 WordPress 中,所以没有单独的文件

谢谢

【问题讨论】:

  • 超级模糊,post_id 到底是什么?你要传递给 PHP 什么?

标签: php jquery variables assign


【解决方案1】:

您可以使用 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>

【讨论】:

    【解决方案2】:

    您需要使用 ajax。像这样的:

    JQuery:

    $('.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()

    【讨论】:

    • 感谢您的回复。我不确定我会如何使用它。有没有更简单的方法?大声笑
    • 这是我的代码 不确定这是否有帮助?
    • 更新了,看看是不是你需要的。
    • 关于url : '/path/to/php/file.php', ,因为它是一个wordpress模板,因此是一体的,我需要这个还是有办法绕过它?同样,要在页面上调用它,我只需要echo json_encode($query_result); 再次感谢
    • Wordpress 只是 PHP。您并没有被锁定在创建 wordpress 模板文件,但如果这是您想要做的,那么只需将您的 ajax 输出包装在 ob_start()ob_end_flush() 标记中。
    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 2018-03-05
    • 2018-12-15
    相关资源
    最近更新 更多