评论部分不会发表评论

时间:2016-04-14 13:54:49

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

1 个答案:

答案 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 ...没有它,脚本将无法正常工作。

如果您需要更多帮助,请与我联系。