【问题标题】:How to pass a javascript variable to the parameter value of site_url?如何将javascript变量传递给site_url的参数值?
【发布时间】:2017-09-06 13:09:04
【问题描述】:

我想进行 ajax 调用:

function loadView(url_, target, pk, json_extra_data) {

  var ret = "";

  if (isNaN(pk) == false && typeof(pk) !== "boolean" && $.trim(pk) != "" && pk > 0) {

    if (target == "MN") {

      ret = $.ajax({
        data: json_extra_data,
        type: "POST",
        url: "<?php echo site_url('meeting/modif'); ?>/" + pk,
        async: false
      }).responseText;

    } else if (target == "EQ") {

      ret = $.ajax({
        data: json_extra_data,
        type: "POST",
        url: "<?php echo site_url('enquete/questionnaire'); ?>/" + pk,
        async: false
      }).responseText;

    }

  }

  return ret;

}

那么如何把javascript变量url_作为site_url的参数值呢?

【问题讨论】:

  • 您是否尝试从 JavaScript 调用 PHP 函数?
  • 是的,其实它是一个Codeigniter函数(PHP)
  • 这是不可能的。 PHP 在服务器上运行,只有这样 JS 才能用于客户端。将 site_url 函数移植到 JS 或进行另一个 AJAX 调用以生成所需的值。

标签: javascript php codeigniter codeigniter-3


【解决方案1】:

如果你有外部 JS 文件,你必须像这样声明全局变量 例如:

<script type="text/javascript" src="<?php echo base_url('assets/customjs/custom.js')?>"></script>
<script>
    var base_url = "<?php echo base_url();?>";
    var current_url = "<?php echo current_url();?>";
   </script>

【讨论】:

    【解决方案2】:

    您不能在 JS 文件中调用 PHP。我建议您在 head 标签上创建一个全局 JS 变量,该变量将包含您需要并在 JS 文件中调用的必要信息。

    您的代码或多或少应该是这样的。

    <html>
        <head>
            <script type="text/javascript">
                var site_url_questionaire = <?php echo site_url('enquete/questionnaire'); ?>;
            </script>
            <script src="some_js_file.js" type="text/javascript">
        </head>
    </html>
    

    如果您需要澄清,请告诉我。谢谢!

    【讨论】:

    • 其实可以设置Apache服务器让PHP解析任意(扩展名)文件。但我宁愿坚持提出的解决方案。
    • 感谢您的意见。这对我们来说是一个额外的选择。
    猜你喜欢
    • 2016-08-19
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-25
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多