【发布时间】:2017-09-02 18:46:09
【问题描述】:
将数据插入mysql时遇到问题。我正在使用 3 个文件来做到这一点 home.php、ajax.js 和 proses_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: false、contentType:false和整个beforeSend来工作。其余的看起来不错。 -
而
dataType:"json"是告诉Ajax 期望什么数据格式作为响应。如果你不期待它是没有用的。 -
我已删除 processData: false、contentType:false 和 beforeSend。并且在数据库中仍然为 alas hak 字段的空值