我有两个 php 文件(index.php 和 insert.php)我的 index.php 有一个表单,它接受用户的三个输入(事件、持续时间和日期——这是一个健身应用程序)并存储它在数据库中。我已经编写了插入数据库的代码,它成功地做到了,但是现在我想向站点添加通知,以便用户知道他们的输入是否已插入。例如,如果他们输入的持续时间不是数字或小于 0,我希望在网站上显示文本,通知他们将持续时间更改为适当的值。我已经为此编写了脚本并希望异步完成它。现在,我只想在数据添加成功时打印出来,但事实并非如此。现在它把我带到了另一个空白页,没有打印任何东西,但也正确地更新了我的数据库。不确定我做错了什么。
索引.php
<script>
$(function() {
$('#getData').click(function(event) {
event.preventDefault();
$.ajax({
type: "GET",
url: "insert.php",
data : { activity : $('#activityInput').val(), duration: $('#durationInput').val(), date: $('#dateIn').val( },
beforeSend: function(){
}
, complete: function(){
}
, success: function(html){
//this will add the new comment to the `comment' div
$("#comment").html(html);
}
});
});
});
</script>
<h1> Add input </h1>
<form action="insert.php" method="GET">
Fitness activity:<br>
<input type="text" name="activity" id="activityInput"><br>
Duration of activity (hrs):<br>
<input type="text" name="duration" id="durationInput"><br>
Date (mm-dd-yyyy):<br>
<input type="text" name="date" id="dateIn" ><br>
<input type="submit" value="Submit" id="getData">
</form>
<div id='comment' ></div>;
插入.php
if(!empty($_GET["activity"]) && !empty($_GET["duration"]) && !empty($_GET["date"])) {
$activity = mysqli_real_escape_string($link, $_GET["activity"]);
$duration = mysqli_real_escape_string($link, $_GET["duration"]);
$date = mysqli_real_escape_string($link, $_GET["date"]);
if(is_numeric($duration) && $duration > 0){
$sql = "INSERT INTO users (activity, dateInput, duration) VALUES ('$activity','$date','$duration')";
$result = mysqli_query($link, $sql);
mysqli_close($link);
echo '<div class="comment">' ."Successfuly added" . '</div>';
}
}
最佳答案
您正在为成功回调使用一个 id
$("#comment").html(html);
但是你的 div
<div class='comment' ></div>;
有一个类,所以要么将其更改为 id 要么使用
$(".comment").html(html);
关于php - 使用 php 进行异步评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461535/