使用jQuery显示来自另一个文件的数据不起作用并在codeigniter中显示视图

时间:2013-02-20 00:20:14

标签: php jquery codeigniter

<html>
<head>
<title></title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#items').load('<?php echo base_url('home/test'); ?>'); 
//alert();
});

</script>
</head>

<body>


<div id="header" style="height:11%;width:100%;background-color:#1F242A;">

<div id="img" style="float:left;">
<img src="/e-com/images/logo.jpg" style="margin-left:130%;" />
</div>
</div>

<div id="left" style="background-color:grey;height:100%;width:13%;float:left;">
</div>

<div id="right" style="background-color:grey;height:100%;width:13%;float:right;">
</div>


<div id="content" style="height:100%;width:70%;float:left;">
<div id="table" style="float:center;">
<table border="0" width="44" style="margin-left:45%;"> 
<tr>
<td><h1><a href="home">Home</a></h1></td>
<td><h1><a href="home">Home</a></h1></td>
<td><h1><a href="home">Home</a></h1></td>
</tr>
</table>
</div>
<div id="items">here</div>
</div>



</body>
</html>


</script>

首先,上面的脚本在home_view中,应该显示test.php中的几个单词,但它不起作用。 Test.php有段落标签和几个单词。我能够显示一个警告框,以便jQuery正常工作。

其次,如何使用codeigniter执行此操作?如何将数据发送到test.php,但加载home_view.php?

public function test()  
{
    //$data['items'] = $this->product_model->all_items();
    $this->load->view('test');

}

2 个答案:

答案 0 :(得分:1)

使用base_url()获取加载的文件&amp; MVC当然

例如

$(document).ready(function() {
$('#items').load('<?php echo base_url("controller/method"); ?>');
});

在您的方法中,只需调用视图

即可
$this->load->view('test',$data); 

对于你的第二个问题,如果你没有调用它,那么它将是无用的,PHP代码将不会被发布或解释

因此,如果真的非常需要查看home_page并将数据发送到test,您可以

  1. AJAX请求发送数据的方法,我想在这里你不会得到任何好处,我不知道你想要实现什么
  2. 在home_page.php视图中加载test.php视图并隐藏容器div,例如
  3. 在您的控制器中

    public function index() 
    {
        $test['title'] = "Stackoverflow" ;
        $data['test'] = $test['title']; 
        $data['items'] = $this->product_model->all_items();
        $this->load->view('home_page', $data);
    
    }
    

    在您的视图中home_page.php

    <html>
    ........
    
    <div style='display:none; '>
        <?php $this->load->view('test',$test); ?> 
    </div>
    

    我希望这可以帮助:) 如果您需要更多帮助,请发表评论:)

答案 1 :(得分:0)

关于你的第一个问题:

尝试

<script>
  $(document).ready(function() {
    $('#items').load('/views/test.php');  # mark the preceding slash
  });
</script>

如果不起作用,请检查yourdomain.com/views/test.php

上是否有内容