2016-02-26 96 views
0

我有以下的在我的控制器定义:访问PHP变量jQuery中使用CodeIgniter

$data['is_amazon'] = $product->is_amazon; 
$data['is_ebay'] = $product->is_ebay; 

正下方,这在我打电话.js文件(jQuery的)控制器。

$this->template->add_js('js/is_ebay_amazon_prouct_edit.js'); 

我想访问我的jQuery脚本这些PHP变量,我已经试过这种方法:

var amazon = '<?php echo $is_amazon; ?>'; 
var ebay = '<?php echo $is_ebay; ?>'; 


jQuery(document).ready(function($) { 

    alert(amazon); 
    //alert(ebay); 

}); 

虽然这只是显示在警告我的身体文本,IE:

<?php echo $is_ebay; ?> 

在我的jQuery中使这些变量可访问的最佳方法是什么?

+1

你不能在PHP代码添加到js文件。 PHP代码只能在.php文件中运行 – Phiter

回答

3

试试这个

做一件事..你需要在视图中创建两个输入hiddent场。 这样

<input type='hidden' id="amazon" value="<?php echo $is_amazon; ?>" /> 
<input type='hidden' id="ebay" value="<?php echo $is_ebay; ?>" /> 

,并呼吁在你值的jQuery LIK这

$(document).ready(function() { 

    //alert($('#amazon').val()+" "+$('#ebay').val()); 

    console.log("amazon"+$('#amazon').val()); 
    console.log("ebay"+$('#ebay').val());  
}); 

现在它将为ü工作..尝试。

+0

不幸的是,该警报仍然显示php代码:<?= $ is_amazon; ?> –

+0

等待我现在将更新我的答案 –

+0

它的工作与否。 –

0

没有选项可以直接将php变量分配给javascript。要做到这一点,你需要指定分配给它的HTML相同的元素,

<input type="hidden" id ="amazon" value="<?php echo $is_amazon; ?>"> 

我们可以通过使用此代码获取从这个HTML元素jQuery的价值,

var amazon = $('#amazon').val(); 

出于安全原因,PHP变量不能分配给JavaScript变量。

0

试试这个

<input type="hidden" id="fromAmazon" value="<?php echo $is_amazon ?>"/> 
<input type="hidden" id="fromEbay" value="<?php echo $is_ebay ?>"/> 

jQuery中 后装载的jquery.js文件

jQuery(document).ready(function($) { 

    var amazon = $("#fromAmazon").val(); 
    var ebay = $("#fromEbay").val(); 

    console.log("amazon",amazon); 
    console.log("ebay",ebay); 

});