2016-04-14 22 views
0

Kodumda bir sorun var. Bir yorum yayınladığımda, düğmeye bastığımda, siteyi yenilemeden önce yorum alanında gösterilmez. Birisi bana yardım edebilir mi? Bu gerçekten takdir olurdu!Yorum bölümü Yorum yazamamıştır

<?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

Bu şeyin halledilmesi gereken şey ve AJAX çağrısı. Birisi yorumu gönderir, AJAX gönderir ve bir yenilemeye gerek kalmadan sayfayı güncelleştirir. – durbnpoisn

+0

Girdileriniz için mysqli_real_escape_string kullanıyor olmalısınız, çünkü bu, tablolarınıza eklenecek verilerin eklenmesini engelleyebilir. Http://php.net/manual/en/mysqli.real-escape-string.php – jeff

cevap

0

sayfayı yeniden kadar, geçici olarak AJAX yoluyla Yorum eklemek gerekir. Böyle

şey:

// 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> 

Yani bu gerektiği açılan içinde bir tepki ile bir kutu. Buradan çimdiklemelisin. PHP'nizin cevabı yankılanması gerekiyor ve ardından HTML'nize ekliyorsunuz.

verileri aracılığıyla değişkenleri geçirmeniz gerekir. Hepsi php betiğinizin ne olduğuna bağlı ... Bu durumda test_envy.php. Söylemeyi unuttum

Bir daha önemli şey size html başkanına bu satırı eklemeniz gerekir ise:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.js"></script> 

Bu Onsuz sayfanızdaki ... üzerinde jQuery yüklemek için, komut dosyası kazandı Çalışıyorum Daha fazla yardıma ihtiyacınız olursa, bize bildirin.

+0

Tüm bunları ekleyebilir miyim? PHP dokümanım işe yarayacak mı, yoksa bir şey indirmek zorunda mıyım? – Simen

+0

Oh hayır daha fazla şey eklemeniz gerek ... izin vermeme izin verin, böylece sizin için çalışabilir ... –