【问题标题】:Accessing PHP variable in jQuery with CodeIgniter [duplicate]使用 CodeIgniter 在 jQuery 中访问 PHP 变量 [重复]
【发布时间】:2016-02-26 11:39:35
【问题描述】:

我在控制器中定义了以下内容:

$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);

});

虽然这只是在警报中显示我的物理文本,但 I.E:

<?php echo $is_ebay; ?>

就让这些变量在我的 jQuery 中可访问而言,这里最好的方法是什么?

【问题讨论】:

  • 不能将php代码添加到js文件中。 PHP 代码仅在 .php 文件中运行

标签: php jquery codeigniter


【解决方案1】:

试试这个

做一件事..您需要在视图中创建两个输入隐藏字段。 像这样

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

并像这样在你的 jquery 中调用该值

$(document).ready(function() {

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

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

现在它对你有用.. 试试吧。

【讨论】:

  • 不幸的是,仍然没有喜悦,警报仍然显示php代码:=$is_amazon; ?>
  • 等我更新我的答案
  • 它现在是否适合你。
  • 创建额外的 DOM 元素只是为了保留 php 变量意味着不必要的 DOM 膨胀。我不推荐这种技术。
【解决方案2】:

没有直接将 php 变量分配给 javascript 的选项。为此,您需要将其分配给 html 元素,例如,

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

我们可以使用这段代码从这个html元素中获取jquery中的值,

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

出于安全原因,php 变量不能分配给 javascript 变量。

【讨论】:

    【解决方案3】:

    试试这个

    <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);
    
    });
    

    【讨论】:

      猜你喜欢
      • 2011-05-16
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      相关资源
      最近更新 更多