JavaScript, Ajax - 为啥 JavaScript 代码上的 Ajax 函数不能正常运行?

Posted

技术标签:

【中文标题】JavaScript, Ajax - 为啥 JavaScript 代码上的 Ajax 函数不能正常运行?【英文标题】:JavaScript, Ajax - Why Ajax's function on JavaScript's code can't run properly?JavaScript, Ajax - 为什么 JavaScript 代码上的 Ajax 函数不能正常运行? 【发布时间】:2017-10-22 18:18:13 【问题描述】:

印度尼西亚的各位早上好。

我有一些带有 Codeigniter 框架的网络项目。 我有一些字段集用于插入一些带有单选按钮的值输入标签。 我为每个字段集使用了一些向导函数。 在每个向导的末尾,我们都有一些按钮。 我们在这个按钮上添加了一些 javascript 函数。 在 javaScript 函数中,我们添加了一些 Ajax 函数。 Ajax 函数可以将一些值从“视图”发送到“控制器”。 之后,在“控制器”上,我们将带有“模型”的数据保存到数据库中。

问题是,为什么我以前做的ajax函数不能将数据保存到数据库?

这是“视图”(javascript 和 ajax)

function prosesFieldset1()
        var radios = document.getElementsByName('f3');
        for (var r=0, length = radios.length;  r < length; r++)
            if(radios[r].checked)
                var dataf3 = radios[r].value;
                if (dataf3 == 1 || dataf3 == 2 )
                    _('fieldset1').style.display = 'none';
                    _('fieldset2').style.display = 'block';
                    _('progressBar').value = 25;
                else
                    _('fieldset1').style.display = 'none';
                    _('fieldset3').style.display = 'block';
                    _('progressBar').value = 25;
                
            
        
        var f3 = dataf3;
        $.ajax(
            url     : "<?php echo site_url('TracerStudy/masuk_data_ts');?>",
            type    : 'post',
            data    : 'f3' : f3, 'proses' : 1,
            success : function(data)
                console.log(data);
            ,
        );
    

这是“控制器”,用于从“视图”上的 Ajax 获取数据以将它们恢复到新变量并将它们保存到数据库 (TracerStudy/masuk_data_ts)

public function masuk_data_ts()
$f3 = $this->input->post('f3');
$proses = $this->input->post('proses');

if($proses == 1)
  $id_alumni = $this->session->userdata('id_alumni');
  $udah = $this->TracerStudy_model->get_data_ts($id_alumni);
  if($udah = 1 )
    $data = array(
      'id_alumni_fk' => $this->session->userdata('id_alumni'),
      'f3' => $f3
    );
    // $proses = 0;
    $this->TracerStudy_model->update_data_ts($data);
  
  else
    $data = array(
      'id_alumni_fk' => $this->session->userdata('id_alumni'),
      'f3' => $f3,
      'status' => $proses
    );
    // $proses = 0;
    $this->TracerStudy_model->simpan_data_ts($data);
  

这是将数据保存到数据库中的“模型”(TracerStudy_model/simpan_data_ts)

  public function simpan_data_ts($data)
  $this->db->insert("tracer_study", $data);

感谢任何建议和解决此问题的方法。 谢谢大家,希望大家今天过得愉快。

【问题讨论】:

作为实践,我建议您首先检查变量是否具有所需的值。它有助于检测问题的根源。 我不懂 php,但有些东西告诉我 url 仍然无效。 谢谢@Ukasyah,根据您的建议,我必须在哪一部分检查导致此问题的变量? 谢谢@Darkrum,我想是的,也许ajax上的url会导致这个问题。 如果它是由 url 引起的,也许这会有所帮助。 ***.com/questions/21246818/… 【参考方案1】:
 $.ajax(
        url     : "<?php echo site_url('TracerStudy/masuk_data_ts');?>",
        type    : 'post',
        data    : f3 : f3, proses : 1,
        success : function(data)
            console.log(data);
        ,
    );

不要在数据中明智地使用 'f3' 、 'proses' 。

【讨论】:

以上是关于JavaScript, Ajax - 为啥 JavaScript 代码上的 Ajax 函数不能正常运行?的主要内容,如果未能解决你的问题,请参考以下文章

Ajax

为啥 Chrome 和 Firefox 以不同方式处理 jQuery ajax() 回调中设置的 javascript 变量?

为啥 Chrome 和 Firefox 以不同方式处理 jQuery ajax() 回调中设置的 javascript 变量?

为啥与完全没有 JavaScript 相比,通过 AJAX 的 GET 请求替换 div 会导致我的网站变慢这么多?

Ajax是什么?

为啥ajax请求json数据,在IE浏览器里面不能正常显示?