0

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 countryencrypt功能...

我该如何使用?

4

4 回答 4

2

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

可能的解决方案:

  • 在更改事件中执行 ajax 调用以加密值
  • 加密选择的所有值并将它们存储data-encrypted在每个选项的属性中
  • 加密值并将它们存储为 Javascript 数组以供以后查找
于 2013-07-01T07:34:47.050 回答
2

您无法直接执行此操作。这是因为 PHP 在 JQuery 之前被处理。PHP 在服务器端,JQuery 在客户端。

您可以使用此处建议的 encodeURIComponent 。

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

于 2013-07-01T07:36:34.847 回答
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>
于 2013-07-01T12:28:22.837 回答
0

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

于 2013-07-01T07:52:48.347 回答