我的代码中存在问题。当我发布评论时,当我点击按钮时,它在我刷新网站之前不会显示在评论字段中。有人可以帮我吗?真的很感激!
<?php
$db = mysqli_connect("localhost", "root", "", "mydb");
if (mysqli_connect_errno()) {
die(mysqli_connect_error());
}
$query = "SELECT * FROM kommentar";
$resultat = mysqli_query($db,$query);
if (!$resultat) echo "<b>FEIL: ikke i stand til å sende.</b>";
$rows = array();
while ($row = mysqli_fetch_array($resultat, MYSQL_ASSOC)) {
$rows[] = $row;
}
$query2 = sprintf("select * from kommentar");
// Sender spørring til databasen og tester på om den gjekk OK
$resultat2=mysqli_query($db, $query2);
if (!$resultat2) echo "<b>FEIL: ikkje i stand til å senda.</b>";
// Initialisere rows2 som ein 'array'
$rows2 = array();
// Henter verdiar til rows1 frå database-svaret
while ($row2 = mysqli_fetch_array($resultat2, MYSQL_ASSOC)) {
$rows2[] = $row2;
}
if (isset($_GET['id']) && intval($_GET['id']) > 0) {
// Hentar id frå querystreng
$id = $_GET['id'];
// "Cast" id til integer, dvs. gjer om id til heiltal
$id = (int) $id;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Kommentarfelt</title>
</head>
<body>
<h3> Kommentarer: </h3>
<?php foreach($rows2 as $row2): ?>
<?php echo $row2['tekst']; ?>
Lagt inn <?php echo $row2['opprettet']; ?> av <?php echo
$row2['navn']; ?><br>
<?php endforeach; ?>
<h4> Skriv ny kommentar: </h4>
<form method="POST" action="test_envy.php?id=<?php echo $row1['id']; ?>">
<b>Navn:</b><br>
<input type="navn" name="navn"><br>
<b>Kommentar:</b><br>
<textarea cols="60" rows="6" name="tekst"></textarea><br>
<input type="submit" name="sendknapp" value="Send"></form>
</body>
<?php
/*if ($_POST["sendknapp"] == "Send")*/
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//mysql_connect("localhost","root",""); /* server, username, passord */
//mysql_select_db("mydb");
$db = mysqli_connect("localhost","root","","mydb");
$navn=$_POST["navn"];
$tekst=$_POST["tekst"];
$query ="INSERT INTO kommentar (navn, tekst)";
$query.="VALUES ('$navn','$tekst')";
$resultat=mysqli_query($db, $query);
if ($resultat) {
printf("Kommentar registrert", mysqli_insert_id($db));
echo ("<a href='vg.no" . $id . "';> Oppdater side </a>");}
else printf("ikkje i stand til å senda query:%s", $query);;
}
?>
答案 0 :(得分:0)
在页面重新加载之前,您需要通过AJAX暂时添加评论。
这样的事情:
// Add this line in your form
<input type='hidden' id='ajaxURL' value='test_envy.php?id=<?php echo $row1['id'] ?>'>
// Add this to your HTML
<script>
$('input[name="sendknapp"]').click(function(e){
e.preventDefault(); // Stops your page from reloading
var ajaxurl = $('#ajaxURL').val();
$.ajax({ url: ajaxurl, // The URL you're gonna pass to the script
data: {action: 'test'}, // Variables you wanna pass to the function
type: 'post',
success: function(response) {
// Get your variables from the response
alert(response); // This will show you the response in an alert box
// $('#elementID').append("<a href='" + variable + "'> Oppdater side </a>");
}
});
});
</script>
所以应该弹出一个包含响应的框。你需要从这里调整。您的PHP需要回显响应,然后将其附加到HTML。
您需要通过数据传递变量。这一切都取决于你的PHP脚本做什么...在这种情况下test_envy.php。
我忘了提到的另一个重要的事情是你需要将这一行添加到你的html的头部:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.js"></script>
这是在你的页面加载jQuery ...没有它,脚本将无法正常工作。
如果您需要更多帮助,请与我联系。