İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Php Dosyamda Ajax İle Yorum Ekleyemedim

WebWizard

0
İyinet Üyesi
Katılım
5 Haziran 2008
Mesajlar
80
Reaction score
0
Sitemde bazı videoları yükleyip yayınlıyorum. Videonun altında sayfayı yenilemeden yorum yazılsın istiyordum Ajax tavsiye ettiler okudum ettim araştırdm bazı kodlar bulup düzenledm. Ama olmadı :( gönder butonuna basıyorum hiç bişi olmuyo :(

videonun bulunduğu sayfanın adı izle.php ve izle.php?id=1 gibi id'ye göre mysql'dan video çekiyor. form gizli olarak $vid değişkenini gönderiyor. $vid de videonun id si oluyor

buyrun form:


<td class="tableh1">Yorumlar</td>
</tr>
<tr>
<td width="467" class="button">

<form id="yorum_formu" method="post" action="yorumekle.php">
Ad :     
<input type="text" name="ad" size="35"><br>
Yorum:
<textarea rows="4" name="yorum" cols="51"></textarea><br>

<input type="hidden" name="vid" value="<?=$vid;?>">

<input type="button" onClick="gonder()" value="Gönder">

</form>

<script>

function gonder(){

$('yorum_formu').send({

onComplete: function(){

alert("Başarıyla gönderildi");

}

});

}

</script>



Bu da yorumekle.php

PHP:
<?php
include("Settings.php");
$ad=$_POST["ad"];
$yorum=$_POST["yorum"];
$vid=$_POST["vid"];
$date= date("Y/m/d");

$ekle=mysql_query("insert into comments values (ad,yorum,vid,date)values('$ad','$yorum', '$vid', '$date')");

}

}


?>

nerede hatalar var?
birde bu yorum eklendikten sonra yorum ekleme formunun altında yorumları tarihe göre sıralamam için ne yapmam gerekir.
videonun bulunduğu sayfanın adı izle.php ve izle.php?id=1 gibi id'ye göre mysql'dan video çekiyor. form gizli olarak $vid değişkenini gönderiyor. $vid de videonun id si oluyor
Tabi bunu da göz önünde bulundurarak
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Javascript namına birşey göremedim. Benim ajax fonksiyonumu veriyim kullan.

ajax.js
Kod:
function yorumekle() {
var xmlHttpReq = false;
var self = this;
	
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
   	
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', 'yorumekle.php', true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function() {

document.getElementById("yorum").innerHTML = '<b>Lutfen bekleyin...</b>';

if (self.xmlHttpReq.readyState == 4) {
document.getElementById("yorum").innerHTML = self.xmlHttpReq.responseText;
}

}

var form = document.forms['yorum_formu'];
var ad = form.ad.value;
var yorum = form.yorum.value;
var vid = form.vid.value;
qstr = 'ad='+escape(ad)+'&yorum='+escape(yorum)+'&vid='+escape(vid);
self.xmlHttpReq.send(qstr);
}

Ilk dosya

PHP:
<script language="Javascript" src="ajax.js"></script>

...
...
<textarea rows="4" name="yorum" cols="51"></textarea><br>
<input type="hidden" name="vid" value="<?=$vid;?>">
<input type="button" onClick="gonder()" value="Gönder">
<div id="yorum"></div>
</form>

PHP

PHP:
<?php
include("Settings.php");
$ad=$_POST["ad"];
$yorum=$_POST["yorum"];
$vid=$_POST["vid"];
$date= date("Y/m/d");

$ekle=mysql_query("insert into comments values (ad,yorum,vid,date)values('$ad','$yorum', '$vid', '$date')") or die (mysql_error());
if ($ekle) { echo 'Yorumunuz eklendi'; }
?>

Bu tarz durumlarda hatayı teşhis edebilmek için, proses eden ikinci php dosyasına kontrol echo'ları ekleyin. Ajax'da da gelen çıktıyı benim yaptığım gibi bir <div> alanına yazdırın. Yoksa hata javascript'de mi, php'de mi bulmak zorlaşır. Ayrıca firefox'un Hata Paneli IE'ye göre bir hayli gelişmiş javascript hataları için.
 

WebWizard

0
İyinet Üyesi
Katılım
5 Haziran 2008
Mesajlar
80
Reaction score
0
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values('Wiz','deneme yorumu ', '19', '2008/08/02')' at line 1

böle bir hata aldm
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
SQL kodunu doğru yazdığını varsayarak bakmamıştım.
Doğru kullanım
INSERT into tablo (alan1,alan2,alan3) VALUES ('$deger1','$deger2','$deger3')

Ayrıca date alanın MYSQL(DATE) tipi ise, slash değil tire çek aralara.
 

WebWizard

0
İyinet Üyesi
Katılım
5 Haziran 2008
Mesajlar
80
Reaction score
0
ama aynı sayfada olmuyor yorumunuz eklendi diyor ancak yorumekle.php ye gidiyor ajax ın amacı sayfayı yenilemeden eklemk değil mi?
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
<form>'dan action'ı kaldır.
submit kullanma, button kullan.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Adresi ver bakalım. onClick koyduysan tıklanması gerekiyor. Java'da hata olabilir.
 

WebWizard

0
İyinet Üyesi
Katılım
5 Haziran 2008
Mesajlar
80
Reaction score
0
http://hilarydufftr.com/hilarytube/izle_yorumlu.php?id=20

bu form

<script language="Javascript" src="ajax/yorum.js"></script>
.
.
.
<td class="tableh1">Yorumlar</td>
</tr>
<tr>
<td width="467" class="button">

<form id="yorum_formu" method="POST" >
Ad :     
<input type="text" name="ad" size="35"><br>
Yorum:
<textarea rows="4" name="yorum" cols="51"></textarea><br>
<input type="hidden" name="vid" value="<?=$vid;?>">
<input type="button" onClick="gonder()" value="Gönder">
<div id="yorum"></div>
</form>



Bu yorumekle.php
PHP:
<?php
include("Settings.php");
$ad=$_POST["ad"];
$yorum=$_POST["yorum"];
$vid=$_POST["vid"];
$date= date("Y-m-d");

$ekle=mysql_query("insert into comments (ad,yorum,vid,date) values ('$ad','$yorum', '$vid', '$date')") or die (mysql_error());
if ($ekle) { echo 'Yorumunuz eklendi'; }
?>
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Fonksiyonu javascript'te yorumekle() diye tanımlı.
Ya onu gonder() yap ya da formdaki çağrıyı yorumekle() ye çevir.
 

WebWizard

0
İyinet Üyesi
Katılım
5 Haziran 2008
Mesajlar
80
Reaction score
0
teşekkürler oldu :)

şimdi mysql a eklenen bu yorumlardan son 5 tanesini nasıl ekrana basıcam onu da bilmiyorum :(
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst