1

我的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;
                    }

                });
            });
4

3 回答 3

4

更新的答案

如果您尝试从 URL 中获取值,就像您$_GET在 PHP 中使用的一样,我鼓励您使用 jQuery URL Parser 之类的东西:

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";
于 2012-05-27T21:18:26.400 回答
0

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

<?php echo "var country = " . json_encode($_GET['country']) . ";"; ?>
于 2012-05-27T21:12:04.183 回答
0

坦率地说,我认为你不需要在这里把事情搞得太复杂。这可能不是最好的解决方案或任何东西,但它应该可以工作。

这个想法是,在实际页面(例如,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() );
});

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

于 2012-05-27T21:51:23.307 回答