将Jquery变量传递给同一页面中的PHP变量

时间:2014-06-13 12:27:46

标签: php jquery

当我按下按钮.bid,这是一个提交按钮时,我试图在同一页面上将一个Jquery变量(items)传递给php变量$ itemdestination:

<script>
    $(".bid").click(function () {
        var items = $(this).closest("tr")   // Finds the closest row <tr> 
            .find(".nr")     // Gets a descendent with class="nr"
            .text();         // Retrieves the text within <td>
        var itemdestination = $(this).closest("tr")   // Finds the closest row <tr> 
            .find(".no")     // Gets a descendent with class="nr"
            .text();

        $("#prøve").append(items, itemdestination);       // Outputs the answer

        $.ajax({
            url: 'Jobs.php',
            type: 'POST',
            data: {items: items}
        });
    });
</script>

<?php

if (isset($_POST['button_pressed'])) {

    $itemdestination = $_POST['items'];

    //Email information
    $admin_email = "admin@speditionhub.com";
    $email = $userName;
    $subject = "Bid registered on your cargo";
    $comment = $itemdestination;

    echo $admin_email;
    echo $comment;

  //send email
  mail($email, "$subject", $comment, "From:" . $admin_email);

  }
?>
 <script>
alert("Your bid is registered");
</script>
<?php

}
?>

但是我正在使用的方法没有传递任何内容。我做错了什么?

3 个答案:

答案 0 :(得分:1)

删除以下if语句并尝试:

if(isset($_POST['button_pressed'])) 

答案 1 :(得分:1)

不是这样的:

if(isset($_POST['button_pressed']))

应该是:

if(isset($_POST['items']))

似乎您正在检查错误的发布变量。

答案 2 :(得分:1)

你需要在你的js中为button_pressed设置一个post字段(为了你的php运行),然后用返回的数据做一些事情:

$.ajax({
    url: 'Jobs.php',
    type: 'POST',
    data: {items: items, button_pressed: true},
    success: function(data){
        console.log(data);//do something with the data returned
    }
});

编辑如果绑定到提交按钮上的click事件,则必须使用event.preventDefault停止正常提交表单:

$(".bid").click(function (ev) {
    ev.preventDefault();
    //the rest of your code here