我正在尝试使用Ajax来执行表单。这是我的HTML部分,其中我试图进入我的ajax调用只能工作一次,但它不能再次工作,除非我刷新页面
<form class="col s12">
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">mode_edit</i>
<textarea id="icon_prefix2" class="materialize-textarea" name ="discussion"></textarea>
<input type="hidden" name="user" value="<?php echo $_SESSION['userid'];?>">
<input type="hidden" name="id" value="<?php echo(rand(1000,99999)); ?>">
<input type="hidden" name="date" value="<?php echo date("d.m.Y"); ?>">
<input type="hidden" name="time" value="<?php echo date("h:i:s"); ?>">
<label for="icon_prefix2">Start your discsussion</label>
<input type="submit" class="btn waves-effect waves-light right" value="post">
</div>
</div>
</form>
和Ajax调用
$(function() {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'cardiosubmit.php',
data: $('form').serialize(),
success: function() {
alert('successfully posted')
},
error: function() {
alert('error')
}
});
});
});
,这是PHP代码存储在数据库中的值:
<?php
session_start();
include_once('include/config.php');
$conn = config();
$uname = $_POST['user'];
$uid = $_POST['id'];
$val = $_POST['discussion'];
$date = $_POST['date'];`enter code here`
$time = $_POST['time'];
if (!$conn) {
$msg = "connection failed";
die($msg);
} else {
$query = "INSERT into cardiocase (id,uid,val,date,time) VALUES
(?,?,?,?,?);";
$stmt = $conn->prepare($query);
$stmt->bind_param('sssss',$uid,$uname,$val,$date,$time);
if($stmt->execute()){
echo "success";
}else{
echo "fail";
}
$stmt->close();
}
该值首次被存储。但在成功消息后,当我尝试再次进入它只是说成功发布,但是当我检查数据库的值不存在。如果我刷新页面,并尝试再次获取存储。
是'iud'领域'cardiocase' DB独特之处?我想你可能有兴趣从PHP获得响应:add'error_reporting(E_ALL); ini_set(“display_errors”,1);'在页面顶部,并且在JS中,使用PHP回显 - >'success:function(data){alert(data)}'+'error:function(request,status ,错误){alert(request.responseText); }' – OldPadawan
'uid'(表中的'id')是主键 – Anush
好了,'“>'在Ajax调用后保持不变... – OldPadawan