2017-09-02 83 views
0

我在插入数据到mysql时遇到了麻烦。使用3个文件我'做home.phpajax.jsproses_simpan.php不能使用php插入数据到mysql ajax

home.php

<form id="form">             
    <div class="form-group"> 
     <input type="text" class="form-control" id="nama" name="nama" placeholder="Nama"> 
    </div> 
    <div class="form-group">         
     <input type="text" class="form-control" id="alas_hak" name="alas_hak" placeholder="Alas Hak"> 
    </div> 
</form> 
<button type="button" class="btn btn-primary" id="btn-simpan">Simpan</button> 

ajax.js

$("#btn-simpan").click(function(){ 
    var data = new FormData();  
    data.append('nama', $("#nama").val()); 
    data.append('alas_hak', $("#alas_hak").val()); 

    $.ajax({ 
     url: 'proses_simpan.php', 
     type: 'POST', 
     data: data, 
     processData: false, 
     contentType: false, 
     dataType: "json", 

     beforeSend: function(e) { 
      if(e && e.overrideMimeType) { 
       e.overrideMimeType("application/json;charset=UTF-8"); 
      } 
     } 
    }); 
}); 

proses_simpan.php

<?php 
    include "koneksi.php"; 

    $nama = $_POST['nama']; 
    $alas_hak = $_POST['alas_hak']; 

    $sql = $pdo->prepare("INSERT INTO tbl_pengadaantanah(nama,alas_hak) 
      VALUES(:nama,:alas_hak)"); 

    $sql->bindParam(':nama', $nama); 
    $sql->bindParam(':alas_hak', $alas_hak); 
    $sql->execute(); 
?> 

当插入数据时,只存储nama。但唉哈克不存储和空值在数据库中

请帮助我。我该怎么办? 谢谢

+0

如果值在post请求中成功传递,可能会在绑定期间发出。使用try catch块可能对你有所帮助 –

+0

为什么你强制发送数据到JSON而不是URL编码字符串?我认为它应该通过注释掉(或删除)'processData:false','contentType:false'和整个'beforeSend'来工作。其余的看起来不错。 –

+0

而'dataType:“json”'是告诉Ajax什么样的数据格式可以作为响应。如果你不期望,那就没用了。 –

回答

0

更改proses_simpan.php看看你是否在你的SQL中出现错误。

<?php 
    include "koneksi.php"; 

    try { 
     $nama = $_POST['nama']; 
     $alas_hak = $_POST['alas_hak']; 

     $sql = $pdo->prepare("INSERT INTO tbl_pengadaantanah(nama,alas_hak) 
       VALUES(:nama,:alas_hak)"); 

     $sql->bindParam(':nama', $nama); 
     $sql->bindParam(':alas_hak', $alas_hak); 
     $sql->execute(); 
    } 
    catch(PDOException $e){ 
     echo $e->getMessage(); 
    } 
?> 

在开发过程中尝试/抓住总是有帮助的。其余的文件看起来不错。

+0

我试过使用它,但没有任何消息在盒子对话 –