【问题标题】:Codeigniter returns view with null variableCodeigniter 返回带有空变量的视图
【发布时间】:2015-07-20 09:23:00
【问题描述】:

当我从另一个表单发布数据时,当我在 print($id) 中测试它时它可以工作,但是当我在视图中传递它时,当视图加载时,它返回为 null。

这是我的代码:

jQuery 帖子

function viewAccount(orId)
{
    account_id=orId;

    // alert(account_id);

    var postData={
        "id":account_id
    };

    $.post(base_url+"admin/viewAccount", postData).done(function(data){
        inlcudeViews('admin/viewAccount');
    });
}

控制器:

function viewAccount()
{
    $id = $this->input->post('id');

    $data =  array('id' => $id);

    // print_r($data); IT WORKS TILL HERE
    $this->load->view('admin/viewAccount', $data);

}

查看:

// HERE IS WHERE I GET A NULL VARIABLE
var data='<?= $id ?>';
$(document).ready(function() {
    alert(data);
});

【问题讨论】:

    标签: php jquery codeigniter post


    【解决方案1】:

    您只需在viewAccount 视图中使用alert 而不是printecho 您的$id 之类的,

    <?php
       echo isset($id) ? $id : '';
    ?>
    

    另外,请确认您已在 php.ini 中启用 PHP 短标签。如果您使用的是&lt;?= $id ?&gt;

    【讨论】:

      【解决方案2】:

      您的 Jquery 和 View 非常完美。但是在Controller中你必须写

      $this->load->view('admin/viewAccount', $data[0]);
      

      而不是

      $this->load->view('admin/viewAccount', $data);
      

      或者你可以写

      function viewAccount()
      {
          $id = $this->input->post('id');
          $data['id'] =$id;
          // print_r($data); IT WORKS TILL HERE
          $this->load->view('admin/viewAccount', $data);
      }
      

      【讨论】:

      • 我已经尝试了两种为数组赋值的方法,它们都是相同的,但都不起作用。不知何故它不能像这样工作,这是一个问题,因为我包含视图而不是刷新并转到该视图:) 谢谢
      • @saty 嘿兄弟对不起... :( 但我不知道你的回答是一样的。
      • @DeepParekh $data['id']=$id;$data = array('id' =&gt; $id); 相同,所以它不是答案,它只是在数组变量中分配的另一种方式
      【解决方案3】:

      您需要将id 传递给data array,如下所示

      控制器

      $id = $this->input->post('id');
      $data['id']=$id;
      //print_r($data); IT WORKS TILL HERE
      $this->load->view('admin/viewAccount', $data);
      

      【讨论】:

      • 我做了我的朋友,在数组中传递一个变量是一样的,我的方法还是你的:)
      • 不,我无法获得 ID,它为 null :/
      • 我在控制器中获得了 id,但我无法在 VIEW 中传递它
      • 只需用我的代码在视图文件中写入&lt;?php echo $id; ?&gt; 并检查你得到了什么???
      • @Saty $data['id']=$id;$data = array('id' =&gt; $id); 相同,所以它不是答案,它只是在数组变量中分配的另一种方式
      【解决方案4】:

      你没有在你的 javascript 中回显 $id 这应该是 echo $id:

      在这里更新:

      // HERE IS WHERE I GET A NULL VARIABLE
      var data='<?php echo $id; ?>';
          $(document).ready(function() {
              alert(data);
          });
      

      【讨论】:

      • 使用&lt;?php echo $data["id"]; ?&gt;是不正确的。只使用&lt;?php echo $id; ?&gt;
      • 是的,当我们像 = $id;?> 这样写 "=" 并且 $data['id'] 使用不正确时,不需要写 echo。
      • @RohanKumar 实际上我正在使用 cakephp 所以它是这样写的
      【解决方案5】:

      感谢您的快速响应,以上答案均无效。 我设法找到了一个解决方案,但它完全不同的方法我只是把 id 作为一个全局变量。 但我仍然会对这个答案感兴趣,我认为它会帮助其他人

      【讨论】:

      • 如果有帮助,请查看我编辑的答案,然后接受答案。
      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多