我有一个表单,表单中有文本字段和一个画布,它预先形成一个标记键。
我使用pod install
来发送表单。
我遇到的麻烦是确认表单已插入数据库。
我认为ajax和我使用的php之间存在冲突,以便将表单数据插入到mysql db中 我怎么能这样做?
这是js文件的内容
ajax
这是 var fd = new FormData(document.forms["form1"]);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'upload_data.php', true);
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
var percentComplete = (e.loaded / e.total) * 100;
alert(percentComplete + '% uploaded');
}
};
xhr.onload = function() {
};
xhr.send(fd);
文件的内容:
upload_data.php
这是<?php
require 'inc/inc.php';
$upload_dir = "upload/";
$img = $_POST['hidden_data'];
$idNo = $_POST['idno'];
$name = $_POST['fname'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = $upload_dir . mktime() ."-" . $idNo . ".png";
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
$suc = new Form;
$suc->insert_data($name, $file, $idNo);
?>
php函数内容
insert_data()
我知道如果public function insert_data($name, $file, $idNo){
$query = $this->dbh->prepare("INSERT INTO signitures (name, file, idno) VALUES(?, ?, ?)");
$query->bindparam(1, $name);
$query->bindparam(2, $file);
$query->bindparam(3, $idNo);
try {
$query->execute();
if ($query) {
echo "success!! ";
} else {
echo "Failure conncting db!";
}
}
catch (PDOException $e) {
die($e->getMessage());
}
}
返回$query->execute();
而不是插入数据。
如何通知用户数据确实已插入数据库?
即使将用户传递到新页面也是一种选择。
实际上,将用户重定向到新页面会很棒!
答案 0 :(得分:2)
您好需要在try {最后}添加函数insert_data,以成功发送回ajax脚本作为响应,这很简单。
$success['success'] = "You request just sending to the server ...";
echo json_encode($success);
在你的faction ajax
中 xhr.onload = function(data) {
console.log(data);
console.log(data.success);
};
你需要适应,这个方法向你展示了如何将数据发送给JS。
答案 1 :(得分:1)
您也可以在&#34; body&#34;内发送回复。键值对,并将成功/错误指示放在HTTP状态代码中:
$success["body"] = "You request just sending to the server ...";
header("HTTP/1.1 200 OK", true, 200);
在js中收到它:
xhr.onload = function(data) {
console.log(data.status);
console.log(data.body);
};
或: http://php.net/manual/de/function.http-response-code.php
代码说明: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes