[英]How To Input Data To The Database Without Page Refresh?
上下文:以下 PHP 代码片段是我正在开发的问答网站的一部分。
如何将单个用户的答案提交到数据库并在不重新加载页面的情况下显示它们。
这是我用来允许用户回答问题的表格,其中数据(即他们的答案)被提交到一个名为answers
的表中
<!-- Form For adding a answer -->
<script type="text/javascript">
function showHideDiv(ele) {
var srcElement = document.getElementById(ele);
if (srcElement != null) {
if (srcElement.style.display == "block") {
srcElement.style.display = 'none';
}
else {
srcElement.style.display = 'block';
}
return false;
}
}
</script>
<div class="addbutton">
<input type="button" value="Write An Answer For This Question" onClick="showHideDiv('writeanswerform')"/>
</div>
<div id="writeanswerform" style="display: none" class="addyourquestions">
<form method="post" action="" class="addyourquestion">
Write Your Answer:<br><textarea name="answer" rows="5" cols="60" required=""></textarea>
<br>
<input type="submit" name="submitanswer" value="Publish Answer">
</form>
</div>
<?php
if(isset($_POST['submitanswer'])){
$answer = htmlentities(mysqli_real_escape_string($con,$_POST['answer']));
$by_user = $_SESSION['username'];
$to_question_id= $_GET['id'];
if(strlen($answer) <5 ){
echo"<script>alert('Write A Good Answer!')</script>";
exit();
}
$insert = "INSERT INTO `answers` (`answer`, `by_user`, `to_question_id`) VALUES('$answer', '$by_user', '$to_question_id')";
$query = mysqli_query($con, $insert);
if($query){
}
else{
echo "<script>alert('Failed To Upload The Answer To The Database')</script>";
}
}
?>
<br>
<div class="showanswer">
<?php
$to_question_id= $_GET['id'];
$select = mysqli_query($con, "SELECT * FROM `answers` WHERE to_question_id = '$to_question_id' ORDER BY `created_at` DESC") ;
while ($row = mysqli_fetch_array($select)) {
$answer = $row["answer"];
$by_user = $row["by_user"];
$select1 = mysqli_query($con, "SELECT * FROM `users` WHERE username = '$by_user'") ;
while ($row1 = mysqli_fetch_array($select1)) {
$id = $row1["id"];
echo "<div class='showansweranswer'>";
echo "<h3>$answer</h3>";
echo "<a href='userprofile.php?id=$id'>";
echo "<h5>>>>By $by_user</h5>";
echo "</a>";
echo "</div>";
}}
?>
</div>
上下文:以下 PHP 代码片段是我正在开发的问答网站的一部分。
如何将单个用户的答案提交到数据库并在不重新加载页面的情况下显示它们。
这是我用来允许用户回答问题的表格,其中数据(即他们的答案)被提交到一个名为answers
的表中
<!-- Form For adding a answer -->
<script type="text/javascript">
function showHideDiv(ele) {
var srcElement = document.getElementById(ele);
if (srcElement != null) {
if (srcElement.style.display == "block") {
srcElement.style.display = 'none';
}
else {
srcElement.style.display = 'block';
}
return false;
}
}
</script>
<div class="addbutton">
<input type="button" value="Write An Answer For This Question" onClick="showHideDiv('writeanswerform')"/>
</div>
<div id="writeanswerform" style="display: none" class="addyourquestions">
<form method="post" action="" class="addyourquestion">
Write Your Answer:<br><textarea name="answer" rows="5" cols="60" required=""></textarea>
<br>
<input type="submit" name="submitanswer" value="Publish Answer">
</form>
</div>
<?php
if(isset($_POST['submitanswer'])){
$answer = htmlentities(mysqli_real_escape_string($con,$_POST['answer']));
$by_user = $_SESSION['username'];
$to_question_id= $_GET['id'];
if(strlen($answer) <5 ){
echo"<script>alert('Write A Good Answer!')</script>";
exit();
}
$insert = "INSERT INTO `answers` (`answer`, `by_user`, `to_question_id`) VALUES('$answer', '$by_user', '$to_question_id')";
$query = mysqli_query($con, $insert);
if($query){
}
else{
echo "<script>alert('Failed To Upload The Answer To The Database')</script>";
}
}
?>
<br>
<div class="showanswer">
<?php
$to_question_id= $_GET['id'];
$select = mysqli_query($con, "SELECT * FROM `answers` WHERE to_question_id = '$to_question_id' ORDER BY `created_at` DESC") ;
while ($row = mysqli_fetch_array($select)) {
$answer = $row["answer"];
$by_user = $row["by_user"];
$select1 = mysqli_query($con, "SELECT * FROM `users` WHERE username = '$by_user'") ;
while ($row1 = mysqli_fetch_array($select1)) {
$id = $row1["id"];
echo "<div class='showansweranswer'>";
echo "<h3>$answer</h3>";
echo "<a href='userprofile.php?id=$id'>";
echo "<h5>>>>By $by_user</h5>";
echo "</a>";
echo "</div>";
}}
?>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.