Php to Jquery Variable


Php to Jquery Variable

我的config.php文件中有这个

     $DOMAIN = 'http://domain.com';
 $DOMAIN_SSL = 'http://domain.com';
$DOMAIN_ROOT = 'var/domain/root/html';

config.php包含在第一行的每个页面中

现在我有这个jQuery代码

var country = '<?php echo $_GET['country'];?>'; 
var category = 'Cat' ;
var category = '<?php echo $DOMAIN.'/link'; ?>';

如何使用jQuery代码从php获取变量以使jQuery代码像这样

var country = '$country'; 
var category = 'Cat' ;
var url= '$domain','/link';

原始代码我需要排除PHP

var country = '<?php echo $_GET['country'];?>'; 
                var category = 'CAT1' ;               
                function loadData(page){
                    loading_show();                    
                    $.ajax
                    ({
                        type: "POST",
                        url: "<?php echo $DOMAIN ?>/post.php",
                        data: "page="+page +"&category="+category+"&country="+country,
                        success: function(msg)
                        {
                        loading_hide();
                        $("#content-large").html(msg);
                        }
                    });
                }
                loadData(1);  // For first time page load default results
                $('#content-large .pagination li.active').live('click',function(){
                    var page = $(this).attr('p');
                    loadData(page);
                });           
                $('#go_btn').live('click',function(){
                    var page = parseInt($('.goto').val());
                    var no_of_pages = parseInt($('.total').attr('a'));
                    if(page != 0 && page <= no_of_pages){
                        loadData(page);
                    }else{
                        alert('Enter a PAGE between 1 and '+no_of_pages);
                        $('.goto').val("").focus();
                        return false;
                    }
                });
            });

更新的答案

如果你试图从URL中获取值,就像你在PHP中使用$_GET一样,我鼓励你使用jQuery URL解析器之类的东西:

var country = $.url().param("country"); // Gets the 'country' parameter

下载 jQuery URL 解析器:https://github.com/allmarkedup/jQuery-URL-Parser

原始答案

我鼓励你保持简单;只需使用格式化的字符串和json_encode。例如:

$country  = "United States";
$domain   = "http://stackoverflow.com";
$category = 5;
printf( "var country  = %s;", json_encode( $country ) );
printf( "var category = %s;", json_encode( $category ) );
printf( "var domain   = %s;", json_encode( $domain . "/link" ) );

哪些输出:

var country  = "United States";
var category = 5;
var domain   = "http:'/'/stackoverflow.com'/link";

坦率地说,我认为你不需要在这里把事情复杂化这么多。这可能不是最华丽的解决方案或任何东西,但它应该有效。

这个想法是,在实际页面(例如,home.php)上,您将回显包含所需值的HTML元素,例如:

//Fill this array with all the values that you want available in JS
$JSONarray = array('all'=>'the','values'=>'you','want'=>'in','JS');
//Later print it on the page
echo "<span class='hidden' id='transferred_values'>"
    .json_encode($JSONarray)."</span>";

(旁注:您可以将类"隐藏"设置为对用户不可见。

现在,您的外部JS(例如scripts.js)只能使用JS检索值,这将允许您使用压缩器:

$(function(){
    var transfer = $.parseJSON( $('#transferred_values').text() );
});

让我知道这是否违反了良好做法或任何我不知道的规则:)

假设这是在页面上而不是在某个单独的JS文件中,你可以用PHP编写整个语句。

<?php echo "var country = " . json_encode($_GET['country']) . ";"; ?>