将Javascript .append()变量赋值给PHP变量

Assign Javascript .append() variable to PHP variable

本文关键字:变量 赋值 PHP Javascript append      更新时间:2023-09-26

如何将以下javascript变量'money'作为PHP变量存储在同一页面上?

JS

$(document).ready(function(){
var money = 0;
$(".target").change(function () {
var optionSelected = $("option:selected", this);
money = optionSelected.attr("data-price");
alert(money);
$( ".overlay-content" ).append(money);
 // show popup when selecting a country from the drop-down
$('.overlay-bg').show().css({'height' : docHeight}); 
$('.overlay-content').css({'top': scrollTop+20+'px'});
});
});

<select id="customer_country" name="customer_country"
                    class="validate[required] input_styling target"
                    style="background: #FFFFFF;">
                <option value="">Please Select a Country</option>
                <option value="Afghanistan" data-price="29.95">Afghanistan</option>
                <option value="Åland Islands" data-price="29.95">Åland Islands</option>
                <option value="Albania" data-price="29.95">Albania</option>
                <option value="Algeria" data-price="29.95">Algeria</option>
                <option value="American Samoa" data-price="29.95">American Samoa</option>
                <option value="Andorra" data-price="14.95">Andorra</option>
                <option value="Angola" data-price="29.95">Angola</option>
</select>

HTML—Overlay-content(弹出- DIV)

<div class="overlay-bg">
      <div class="overlay-content">
          <p>You have selected a country of residence outside of the United Kingdom.</p>
          <p>Please note we only accept credit card payments from UK customers.</p>
          <p>If you are a customer from outside the UK, please click the
          Paypal icon to be taken through to Paypal checkout to complete your order.</p>
          <td width="185" align="center" valign="middle">
            <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
            <input type="hidden" name="cmd" value="_xclick" />
            <input type="hidden" name="business" value="" />
            <input type="hidden" name="item_name" value="" />
            <input type="hidden" name="return" value="" />
            <input type="hidden" name="currency_code" value="GBP" />
            <input type="hidden" name="image_url" value="" />
            <input type="hidden" name="item_name" value="<?=$r['order_title_1']?>" />
            <input type="hidden" name="item_name" value="<?=$r['order_title_2']?>" />
            <input type="hidden" name="item_name" value="<?=$r['order_title_3']?>" />
            <input type="hidden" name="shipping" value="<?=$shipping?>" />
            <input type="hidden" name="amount" value="<?=$r['order_total']?>" />
            <input type="image" src=""
                   name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />
            </form>
          <p>However, if you are a UK customer and simply made an error,
          please click below to return to the checkout page.</p>
          <p>Thank you</p>
          <button class="close-btn">Close</button>
        </div>
        </div>

目前,我已经设法将data-price值作为警报输出,并附加到弹出式DIV内的<p>Thank you</p>元素。这纯粹是为了测试正确的值正在通过。

相反,我想将money JS变量存储为PHP变量,即$shipping。我试着POST变量如下:

$.post('pay_cart1.php',{'data-price':money},function(result){ alert (result) }

然后用$_REQUEST作为PHP检索值,即

$shipping =$_REQUEST['data-price'];

但是,警报显示了服务器上随机CSS文件的内容,并且$_REQUEST变量数组为空并返回NULL/blank值。

有人能帮忙吗?

请看看这个,因为你显然不明白php和js是如何工作的,这将使事情变得更容易。

那么,你可以在这里做什么,而不是发送数据到服务器只是设置数据价格值航运隐藏的输入值,例如:

$("input[name='shipping']").val(money); 

这样你的隐藏输入就会有你想要的值。这就是你可以在客户端使用js做的事情。

试试这个,和做一个 var_dump ($ _POST) :

$.ajax({
    url : "pay_cart1.php",
    type: "POST",
    data : { data-price : money },
    success: function(data, textStatus, jqXHR)
    {
       //if success
    },
    error: function (jqXHR, textStatus, errorThrown)
    {
       //if error
    }
});