2017-09-02 10 views
0

mysqlにデータを挿入するときに問題があります。それにhome.phpを行うには3ファイルを使用してI'am、ajax.jsproses_simpan.phpはphp ajaxを使ってmysqlにデータを挿入できません

$("#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"); 
      } 
     } 
    }); 
}); 

ajax.js

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> 

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(); 
?> 

データを挿入する場合は、のネームのみが格納されます。 アラスハクは保存されておらず、データベースにNULL値がありません

私を助けてください。私は何をすべきか? ありがとう

+0

post要求で値が正常に渡された場合、バインディング中に問題が発生することがあります。 try catchブロックを使用してください。 –

+0

送信されたデータをURLエンコードされた文字列ではなくJSONに強制しているのはなぜですか?私は 'processData:false'、' contentType:false'、 'beforeSend'全体をコメントアウト(または削除)することでうまくいくと思います。残りはよさそうだ。 –

+0

そして、 'dataType:" json "'はAjaxに応答として期待するデータ形式を伝えることです。あなたが1つを期待しないなら、それは役に立たない。 –

答えて

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(); 
    } 
?> 

開発中にtry/catchを使用すると常に役立ちます。残りのファイルはよさそうです。

+0

私はそれを使用しようとしましたが、ボックスダイアログでメッセージanytingのnull値 –

関連する問題