【问题标题】:footer scripts do not work in codeigniter页脚脚本在 codeigniter 中不起作用
【发布时间】:2019-03-20 11:11:02
【问题描述】:

我在core 文件夹中创建了MY_Controller。我在其中声明了public $footerScript;。这是MY_Controller的代码。

 <?php
    class MY_Controller extends CI_Controller
    {
       public $footerScript;
       public $data = array();
        public function __construct()
        {
            date_default_timezone_set( 'Asia/Karachi' );
            parent::__construct();
            $this->load->library(array('ion_auth','form_validation'));
            $this->data['C_FullName'] = 'CodeigNiter Shop';
            $this->data['C_ShortName'] = 'CI Shop';
            }
    }
    ?>

这个Home Controller 扩展了MY_Controller。此Home Controller 显示views 文件夹中的add_items 文件。

    <?php
    class Home extends MY_Controller
    {
      public function __construct()
      {
        parent::__construct();
        $this->load->library('image_lib');
      }
      public function items()
      {
          $this->show("admin/add_items");
      }
}
?>

这是add_items 中的form,我将id 赋予submit 按钮。当我单击此按钮时,将调用 jquery event

<form id="form1" method="post" enctype="multipart/form-data">
   <div class="row">
      <div class="col-md-4">
         <div class="form-group">
            <label for="Header Text" class="control-label" > Title </i></label>
            <input type="text" placeholder="Title" id="title" name="title" class="form-control" tabindex="1">
         </div>
         <!-- /.form-group -->
      </div>
       <div class="row">
      <div class="col-md-2">
         <input type="submit" name="submit" id="Add" value="Add Items" class="btn btn-success">
      </div>
      <!-- iCheck -->
   </div>
   <!-- /.col (right) -->
</form>

这段代码写在add_items文件的末尾。 script 标签中的链接工作正常,但是当我单击按钮显示 alert 时,它不起作用。

    <?php
        //This Section footerScripts Should Execute In Footer/End of the Page.
        $this->footerScript = sprintf('
        <script src="'.base_url().'assets/bower_components/jquery/dist/jquery.min.js"></script>
        <script src="'.base_url().'assets/plugins/datatables/jquery.dataTables.min.js"></script>        
         <script type="text/javascript">
                  $("#Add").on("click", function (e) {
                        e.preventDefault();
                         var title= $("#title").val();
                         alert(title); return false;
                       }
         </script>
        ');
        ?>

【问题讨论】:

  • 点击后您确定控制权进入您的 JavaScript 脚本吗?您可以在“var title”之前对某些内容进行控制台,以查看它在单击提交按钮后实际被击中
  • 我写了 console.log(title) 但它也不起作用。我认为它无法访问 javascript 代码。

标签: php jquery codeigniter


【解决方案1】:

由于您使用的是 jquery,请不要忘记添加准备好的文档,例如:

$(function() {
  $("#Add").on("click", function (e) {
    e.preventDefault();
    var title= $("#title").val();
    alert(title); return false;
  }    
});

现在它会等待执行你的函数,直到 DOM 完全加载。见docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多