使用Ajax将变量字符串从javascript传递到php

时间:2018-10-10 15:22:43

标签: javascript php ajax

如何使用javascript将html页面中的变量值传递给php?

我在index.php中创建了这段代码

$amount = $_GET['pricenumb'];
echo $amount;

这是我的JavaScript代码,只需单击按钮即可调用并将数据发送到PHP文件。

<script type="text/javascript">
$(".cell").on("click", "input:checkbox", function () {
    var thiss = $(this);
    var total = $("#price");
    var target = $("label[for='" + thiss.attr("id") + "']");

    var item_value = +(target.html().replace(/[^0-9\.]/g, "") || 0);
    var cur_total = +(total.html().replace("$", "") || 0);

    if (thiss.prop("checked") === true) {
        cur_total += item_value;
    } else {
        cur_total -= item_value;
    };

    total.text("$" + cur_total);

});
</script>   
<script type="text/javascript"> 
$("#pay_btn").on("click", function () {     
    var price = $("#price").text();
    var pricenumb = price.replace(/[^0-9\.]/g, "");
    $.ajax({
        type: "POST",
        url: "forumdisplay.php?fid=2",
        data: "price=" + price + "pricenumb="+ pricenumb,
        cache:false,
        success: function(){
        }
    });
});
    </script>

这是复选框,

<div class="cell">
<div class="form-check"><label for="check-a" class="form-check-label"><input id="check-a" class="form-check-input" type="checkbox">$166<span class="form-check-sign"></span></label>
<div class="mask visible-on-sidebar-regular">Buy Product</div>
</div>
</div>

工作代码是,当我选中复选框时,它将更新div的内容,我想当我单击“付款”按钮时,通过javascript获取div的值并将该值发送到我的index.php

2 个答案:

答案 0 :(得分:0)

您正在ajax中使用POST,在php中使用GET,将ajax更改为GET。另外,在您的ajax更改中

type: "POST",
url: "forumdisplay.php?fid=2",
data: "price=" + price + "pricenumb="+ pricenumb,

type: "GET",
url: "forumdisplay.php",
data: {
     price: price,
     pricenumb: pricenumb,
     fid: 2
}

答案 1 :(得分:0)

这不是您在ajax中传递数据的方式。正确的格式是使用大括号并定义道具名称,然后定义值

data:{propName1: value1,propsName2: value2,propsName3: "Some string value"}

在POST请求的情况下,可以在这样的文件中使用哪个

  • $_POST['propName1']将给出value1变量数据作为结果

  • $_POST['propName3'],它将输出为Some string value字符串

如果值是字符串,则该值可以用引号引起来;如果是变量,则可以不使用引号引起来。因此,您需要将ajax数据道具重新定义为

$.ajax({
        type: "POST",
        url: "forumdisplay.php?fid=2",
        data: {price: price ,pricenumb: pricenumb},
        cache:false,
        success: function(response){
            // Things to do on success
        },
        error: function(error){
            // Error handling in case of error
        }
});

您传递的这些值可以在文件forumdisplay.php中与$_POST['price']$_POST['pricenumb']一起使用。 $ _ POST 中的名称是Ajax函数中数据道具中的 propsName