如何在PHP标记内使用jQuery变量

时间:2013-07-01 07:28:49

标签: php jquery

来自jQuery变量的国家值需要用PHP加密函数插入到URL中,如何将jQuery值用于PHP

$("#country_select").change(function(){
    var country = $("#country_select").val();

$(".price_content a").attr("href","signup.php?pack=<?php echo encrypt(2,$key);?>&country="<?php echo encrypt(country,$key);?>);

});

需要将var country添加到encrypt函数...

我如何使用?

4 个答案:

答案 0 :(得分:2)

只有在请求页面时,您的PHP代码才会在服务器端执行一次。在更改事件中不会再次调用它。

可能的解决方案:

  • 执行ajax调用以在change事件中加密值
  • 加密选择的所有值并将其存储在每个选项的data-encrypted属性中
  • 加密值并将其存储为Javascript数组以便稍后查找

答案 1 :(得分:2)

你无法直接做到这一点。这是因为PHP在JQuery之前被处理。服务器端的PHP,客户端的JQuery。

您可以将encodeURIComponent用作建议的here

但是,如果您仍然坚持通过PHP处理参数,您仍然可以使用输入参数对PHP脚本进行ajax调用 - 您需要编码的字符串,PHP将输出您编码的字符串。

答案 2 :(得分:1)

以下是您的解决方案:

<script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

<script type="text/javascript">
// extend jQuery Ajax and change it
$.extend({
    getValues: function(url, qs) {
        var result = null;
        $.ajax({
            url: url,
            type: 'post', 
            data: qs,           
            async: false,
            success: function(data) {
                result = data;
            }
        });
        return result;
    }
});
$(function(){
    $("#country_select").change(function(){
        var country = $("#country_select").val();
        $(".price_content a").attr("href","signup.php?pack="+$.getValues("encrypt.php",{q:'2'})+"&country="+$.getValues("encrypt.php",{q:country}));
    });
})

</script>
<select name="country_select" id="country_select">
    <option value="">Select country</option>
    <option value="IND">India</option>
    <option value="SL">Sri Lanka</option>
    <option value="PAK">Pakistan</option>
</select>

<div class="price_content"><a href="">Click</a></div>

答案 3 :(得分:0)

嗯,PHP是服务器端语言,Javascript是客户端,这意味着,如果没有帖子,你就无法将变量传递给php。如果您不想刷新页面,可以使用AJAX帖子。 另一方面,在jQuery中使用PHP变量相当容易,所以如果这对你的工作是合理的,你应该考虑这一点。