【问题标题】:How to get ajax answer in my php controller如何在我的 php 控制器中获得 ajax 答案
【发布时间】:2019-05-09 09:00:27
【问题描述】:

我正在开发一个新项目,它在一个不错的框架上,即 CodeIgniter,但是当我想使用 ajax 时遇到了一些问题(我对此很不满意)。我想在我的控制器上获取 select 的值,但我不知道为什么(可能是因为我对 ajax 不满意)我无法获得正确的值。当我想知道 ajax 请求发送给我什么时,它会显示一个布尔值。

在来自 Chrome 的网络应用程序上,我收到了发送正确值的请求,即“annee:选择的值”但无法在我的控制器上获取它..

这是我的 ajax:

$('#annee').change(function(){
    var annee = $('#annee').val();
    console.log(annee);

    $.ajax({
        url: "admin",
        type: 'post',
        data: {annee:annee},
    })
});

这是我的模型(cmip_model.php):

function getWhere($annee) {

    $query = $this->db->get_where('cmip_surcharges_go', array('annee' => 
$annee));
    return $query->result ();
}

这是我的控制器(CMIP.php):

public function admin()
{
    $this->load->model('cmip_model');
    $cmip_Obj = new cmip_model();
   
    $surcharges = $cmip_Obj->getWhere($this->input->post('annee'));

    $data = array();
    $data['surcharges'] = $surcharges;

    $data['page_title'] = " :: Admin";
    $data['main_content'] = 'client/CMIP/admin';
    $data['active'] = 'CMIP';
    $this->load->view('_includes/template', $data);
}

这是我的观点:

  année: <select id="annee">
        <option value="">--année--</option>
        <option value="2019">2019</option>
        <option value="2020">2020</option>
        <option value="2021">2021</option>
        <option value="2022">2022</option>
        <option value="2023">2023</option>
        <option value="2024">2024</option>
    </select>
 <?php var_dump($this->input->post('annee'));
 var_dump($surcharges);
 ?>

实际上我是从我的 var dump 中得到的:

B:\wamp\www\cotationtro\applications\frontoffice\views\client\CMIP\admin.php:380: 布尔值 假的

【问题讨论】:

  • 您能否澄清一下:您正在通过查看 Chrome 开发人员工具的“网络”选项卡来检查 &lt;?php var_dump($this-&gt;input-&gt;post('annee')); var_dump($surcharges); ?&gt; 的输出,对吗?
  • 哦不,我直接在我的页面上看到了答案!只在网络选项卡上查看 ajax 的请求:)
  • 基于我的 cmets 中的信息(由于其他地方的误导信息而完全错误,已删除)答案,这可能与 stackoverflow.com/questions/4197976/… 重复
  • 这很奇怪,因为答案只是像 2019、2020 这样的数字,但我会尝试谢谢!
  • 我不明白这里的流程。你有一个页面(我猜它不在上面),它对函数 admin 进行 ajax 调用并将视图呈现为 ajax 响应?你想达到什么目的。一步一步来。

标签: php ajax codeigniter


【解决方案1】:

在 Ajax URL 中进行更改

url: "<?= base_url('controller_name/function_name')?>",

【讨论】:

  • "另外,在 Ajax 调用中使用单 ' 或双引号 " 来声明一个变量" — 这是一个属性名称,而不是一个变量,并且使用一个标识符就可以了。没有特殊字符在名称 annee 需要在该上下文中将其表示为字符串。
  • @Quentin 知道了。
  • @Alex 根据我发布答案的问题。但不是由于使用适当的措辞 ("Also, use single ' or double quotes " to declare a variable in Ajax call") 答案被否决而不是编辑。
猜你喜欢
  • 2021-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 2021-09-24
  • 2019-11-26
  • 2022-10-17
相关资源
最近更新 更多