【问题标题】:javascript return data after success functionjavascript成功后返回数据函数
【发布时间】:2016-05-31 06:28:02
【问题描述】:

我想使用 ajax 函数向 mysql 提交一个表单,但我的尝试在 mysql 表中给出了 NULL 结果。

这是我的 javascript:

function pesan()
    { 
        email = $("#email").val(); 
        from_nama = $("#from_nama").val(); 
        from_phone = $("#from_phone").val(); 

        $.ajax
        ({
            url : "<?php echo site_url('kirim/undangan')?>/",
            type: "POST",
            dataType: "JSON",
            success: function(data)
            {       
               $('#alert').show();
               $('#email'+data).html(data.email);
               $('#from_nama'+data).html(data.from_nama);
               $('#from_phone'+data).html(data.from_phone);
            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                alert('Error upload data');
            }

        });
    }

还有形式:

        <h4 id="form">Data Personal</h4>

                            <div class="col-sm-4">
                                <input type="email" class="form-control input-lg" id="email"  name="email"  placeholder="Email" required>
                            </div>

                            <div class="col-sm-4">
                                <input type="text" class="form-control input-lg"  id="from_nama" name="from_nama" placeholder="Nama" required>
                            </div>

                            <div class="col-sm-4">
                                <input type="number" class="form-control input-lg"  id="from_phone"  name="from_phone" placeholder="Phone" required>
                            </div>
                            <div>
                               <input type="hidden" name="id" id="id" />
                            </div>
                            <br>
                            <div class="row" align="center">
                                
                                    <button id="pesan" type="button" class="btn btn-download btn-md" onclick=pesan()>
                                    <span class="glyphicon glyphicon-send" aria-hidden="true" ></span>
                                    Pesan
                                    </button>

这是控制器:

function undangan()
	{	
			$email          =   $this->input->post('email');
			$from_nama		=   $this->input->post('from_nama');
			$from_phone		=   $this->input->post('from_phone');

			$data_user = array(

				'email'			 				=> $email,
				'name'      	 				=> $from_nama,
				'phone' 			 			=> $from_phone,
				'status'           	 			=> '0',
				'unique_id' 	        		=> uniqid()

			    );

            $this->load->model('excel');
            
			$this->excel->tambahuser($data_user);
       
		 	
		$this->load->view('kirimundangan.php',$data);
	} 

型号:

function tambahuser($data_user)
        {
            $this->db->insert('request', $data_user);
            $this->db->insert_id();
            
            foreach ($data_user as $key)     
            {  
                $data = array(
                    
                    'from_name'          =>   $this->input->post('from_nama'),
                    'from_phone'         =>   $this->input->post('from_phone')
                );
            }
             
        }

我想我在success:function(data)里面写代码时犯了错误,有什么帮助吗?

【问题讨论】:

  • 您没有将电子邮件、from_nama、from_phone 发送到 ajax?这就是为什么没有任何东西保存在数据库中并添加您的服务器端代码
  • 我尝试了上面的代码,但它给了我表中每个字段的 NULL :(
  • 你的意思是 email = $("#email").val() eq to null ?当您在 java 脚本上添加警报时?并添加服务器端代码
  • 这里你写的代码是错误的$this-&gt;load-&gt;view('kirimundangan.php',$data);
  • 你想在 AJAX 中显示视图

标签: javascript jquery mysql ajax codeigniter


【解决方案1】:

将peson函数改为

function pesan()
    { 
        var email = $("#email").val(),
          from_nama = $("#from_nama").val(),
          from_phone = $("#from_phone").val(); 

        $.ajax
        ({
            url : "<?php echo site_url('kirim/undangan')?>/",
            type: "POST",
            dataType: "JSON",
            data:{from_nama: from_nama, email: email, from_phone: from_phone},
            success: function(data)
            {       
               $('#alert').show();
               $('#email'+data).html(data.email);
               $('#from_nama'+data).html(data.from_nama);
               $('#from_phone'+data).html(data.from_phone);
            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                alert('Error upload data');
            }

        });
    }

并且您期望 json 响应,因此您还必须更改服务器端代码,并且从那里您必须使用 json 而不是视图返回数据。 我希望这对你有用

【讨论】:

  • 现在数据上传到数据库了,为什么我会收到错误提示?
  • 你必须像 $json = json_encode($data); 这样用 json 返回数据然后回显 $json;
  • 内部成功函数?还是控制器?
  • 我删除了 json 类型。它现在可以正常工作了。谢谢你的帮助:)
  • 实际上jQuery 检测到datatype 如果未明确定义,则通过智能猜测。所以在某些情况下最好省略它。
猜你喜欢
  • 2015-09-11
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
相关资源
最近更新 更多