php - 评论区不发表评论

标签 php mysql comments

我的代码有问题。当我发表评论时,也就是点击按钮时,在刷新网站之前,它不会显示在评论字段中。有人可以帮我吗?我们将不胜感激!

<?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);;  
}    
?>

最佳答案

在页面重新加载之前,您需要通过 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...没有它,脚本将无法工作。

如果您需要更多帮助,请告诉我。

关于php - 评论区不发表评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625306/

相关文章:

java - 注释工具/库

netbeans - 如何在 Netbeans 7.4 中禁用自动注释

php - 为什么不缓存?

php - 为什么这个变量变量不能正常工作? PHP

Mysql 连接两个表并将多行中的一列中的值连接为字符串形式的结果

MySQL 选择日期

mysql - MySQL 在 Ubuntu 16.04 上的安装错误

eclipse - IDE 注释关键字

php - 我如何正确地将此 PHP 插入到 <a> 标记的标题中?

php - 有趣的正则表达式