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 countryますencrypt...

どのように使用できますか?

4

4 に答える 4

2

PHP コードは、ページが要求されたときにサーバー側で 1 回だけ実行されます。change イベントで再び呼び出されることはありません。

可能な解決策:

  • change イベントで、値を暗号化するために 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 に答える