2017-04-16 118 views
1

我创建了一个简单的mvc程序。php代码导致问题引导模态在Codeigniter

下面是图

<?php 

    defined('BASEPATH') OR exit('No direct script access allowed'); 
    ?><!DOCTYPE html> 


    <html> 
     <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 


    <link href="<?php echo base_url('assets/css/bootstrap.min.css'); ?>" rel="stylesheet" type="text/css"/> 
    <link href="<?php echo base_url('assets/css/bootstrap.css'); ?>" rel="stylesheet" type="text/css"/>   

     </head> 

     <body> 

      <div style="margin-left: 5px" class="panel panel-info"> 
      <div style="text-align:left;" class="panel panel-heading">Main 
      <a id="lnkEditInterests" style="float:right" href="#" data-toggle="modal" data-target="#myModal"> 
      <span class="glyphicon glyphicon-pencil"></span> 
     </a> 

      <!-- Modal --> 
    <div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog modal-sm"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">Title</h4> 
     </div> 
     <div class="modal-body"> 
      <table> 
       <?php 

       // this is what causing issue. 

      $a=$allInterests->num_rows();   

       ?> 
       <tr> 
        <td> </td> 
       </tr> 
      </table> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
     </div> 
    </div> 
    </div>    
     </div> 
     <div class="panel panel-body">Panel Content</div> 

     </div> 

    <script src="<?php echo base_url('assets/js/bootstrap.js'); ?>" type="text/javascript"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 

     </body> 
    </html> 

在上述视图的代码,$ allInterests变量从下面控制器通过。

下面是控制器

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Profile extends CI_Controller 
{ 

    public function main() 
    { 
      $this->load->model('Model_Profile'); 
      $data["allInterests"]= $this->Model_Profile->loadAllInterests(); 

     $this->load->view('PROFILE\view_ProfileInterests',$data); 

    } 


} 

从控制器我传递已设定的行的$数据阵列的代码。

我需要以表格格式在模态中显示这些数据。

但是,当我在模态体内表中添加php代码以显示数组中的数据时,模态停止工作,它停止出现,并且Panel内容此div标记消失。

但是,一个简单的回声声明不会导致任何问题,但如果或foreach语句导致问题莫代尔。

有什么我在这里失踪? 或者这不是它应该如何?

有人可以请帮忙。

+0

你是什么意思与模态内容disaapearing?你能否在modal不工作时发布生成的html,我认为出现了一些错误,并且php正在向你的html渲染错误信息,从而破坏了IT。 – tino415

+0

Panel Content
这个div不会出现在HTML中,它不是模态的一部分,而是一个div –

+0

您是否尝试在'table'标签之外放置'$ a = $ allInterests-> num_rows();'然后使用内部的值?这可能是问题所在。 –

回答

1

我找到了解决办法。问题是$ allInterests变量为null,因此导致它在模态中产生问题。

在该变量中传递适当的数据使其工作。

1

$ allInterests是一个变量。

如果您必须访问$ allInterests,则必须像访问常规变量或对象一样访问它。

如果$ allInterests是一个数组,

您可以存取权限像,

If (!empty($allInterests)) 
{ 
    for($i=0;$i<count($allInterests);$i++) 
    { 
      echo $allInterests[$i]; 
    } 
} 

如果它的一个对象,你可以使用的foreach循环左右。

你必须像处理普通变量或对象一样处理它。

希望你有个想法。

+0

我不认为你已经理解了什么问题,问题是我不能在模态体内添加任何一段php代码。像一个简单的if或foreach语句 –

+0

你能解释一下num_rows()是什么,它是codeigniter的一个函数吗? –