【问题标题】:can't insert data into mysql using php ajax无法使用php ajax将数据插入mysql
【发布时间】:2017-09-02 18:46:09
【问题描述】:

将数据插入mysql时遇到问题。我正在使用 3 个文件来做到这一点 home.phpajax.jsproses_simpan.php

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。但是 alas hak 没有存储在数据库中并且为空值

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

【问题讨论】:

  • 如果在 post 请求中成功传递了值,则绑定过程中可能会出现问题。使用 try catch 块可能会对您有所帮助
  • 为什么要强制发送的数据为 JSON 而不是 URL 编码的字符串?我认为它应该通过注释掉(或删除)processData: falsecontentType:false 和整个beforeSend 来工作。其余的看起来不错。
  • dataType:"json" 是告诉Ajax 期望什么数据格式作为响应。如果你不期待它是没有用的。
  • 我已删除 processData: false、contentType:false 和 beforeSend。并且在数据库中仍然为 alas hak 字段的空值

标签: php jquery ajax


【解决方案1】:

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

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

【讨论】:

  • 我试过使用它,但对话框中没有任何消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
相关资源
最近更新 更多