İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Ajax ile işlem yapmak ( Yardım )

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Bugün bu konuda baya bir araştırma yaptım ama bir sonuca varamadım.

Yapmak istediğimi örnek ile açıklamak en mantıklısı galiba.

Veritabanından veri çektim.

VeriID sonuc1 sonuc2 sonuc3
16 a b c
17 d s w
18 d w z şeklinde sonuçlar çıksın. Burada sonuc olan kısımlara link vericem ve aynı sayfanın bir bölümünde tıklanan sonucları gösterecek. Mesela kullanıcı 16'dan a'yı ve 17'den s'yi tıkladı. Bunları alt alta seçtiğim bölümde gösterecek. Bunları da "form" ile veritabanına göndericem.

İddaa sitelerinde kupon oluşturma gibi yani... Acaba bunu hangi ajax yöntemiyle yapabilirim. Bunun için örnek var mı acaba ?

Teşekkür ederim...
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
On Taraf

PHP:
<?PHP
session_start();
?>
<script language="Javascript">
function tikladim(zimbirti,deger) {

var xmlHttpReq1 = false;
var self1 = this;
var element = document.getElementById('yazburaya');
	
  if (window.XMLHttpRequest) {
  self1.xmlHttpReq = new XMLHttpRequest();
  }
   	
  else if (window.ActiveXObject) {
  self1.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  }


self1.xmlHttpReq.open('POST', 'araci.php', true);
self1.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	
	self1.xmlHttpReq.onreadystatechange = function() {
		
		if (self1.xmlHttpReq.readyState == 4) {
		element.innerHTML = self1.xmlHttpReq.responseText;
		}
	
	}
	
qstr = 'key='+escape(zimbirti)+'&value='+escape(deger);
self1.xmlHttpReq.send(qstr);
}
</script>

<b>16</b><br>
<a href="javascript: void(0)" onClick="tikladim('16','A');">A</a>
<a href="javascript: void(0)" onClick="tikladim('16','B');">B</a>
<a href="javascript: void(0)" onClick="tikladim('16','C');">C</a>

<br><br>
<b>17</b><br>
<a href="javascript: void(0)" onClick="tikladim('17','A');">A</a>
<a href="javascript: void(0)" onClick="tikladim('17','B');">B</a>
<a href="javascript: void(0)" onClick="tikladim('17','C');">C</a>

<br><br>
<div id="yazburaya"></div>


Ajax PHP dosyasi (araci.php)

PHP:
<?PHP
session_start();

  if ($_POST['key'] != '') {
  $key = $_POST['key'];
  $_SESSION['tiklananlar'][$key] = $_POST['value'];
  }

  foreach ($_SESSION['tiklananlar'] as $key=>$value) {
  echo $key.' icin '.$value.' tiklandi<br>';
  }

?>
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
16, 17, 18'i nereden yazdırıyorsan, id-sonuc ciftlerine javascript fonksiyonu olarak yazdığım şeyi gireceksin tıkladım(id,sonuc) cifti olarak.

Formatlamasını ajax php dosyası içinde yapıyorsun echo kısmında.

Nereye yazacağı da <div id="yazburaya"></div> da belirtilmiş durumda

4500. mesaj whooowww
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Angelo tam istediğim gibi bir uygulama oldu. 16,17 olayı sadece örnek olarak verdim. Sİstem o şekilde işlemeyecek. Zaten key,value kısımlarını arttıracağım. Bunun için bana çok güzel bir örnek oldu. Teşekkür ederim.

Yalnız uygulamada bazı sorunlar var. Galiba onu da yazdırdığımız sonuclardan istediğimiz id değerine sahip veriyi diğerleri kalacak şekilde silmemiz gerekiyor. Onu nasıl yapabiliriz. İddaa kuponlardaki mantık gibi.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Tam anlamadım ama değer sildirmek için yine aynı mantık kullanacaksın.

$_SESSION['tiklananlar'][$anahtar] => $deger

seklinde tutuluyor. Belirli bir anahtari silmek icin

unset($_SESSION['tiklananlar']['anahtar_ismi']) yapmak yeterli.

Mesela javascript fonksiyonunu 3 inputlu yaptirirsin.
tikladim(zimbirti,deger,islem) {
seklinde

islem'i de 'ekle' veya 'sil' diye belirtirsin.

(JS fonksiyonda Ajax'a verilen post degerleri kismi)

if (islem == "sil") {
qstr = 'islem=sil&key='+escape(zimbirti);
}
else if (islem == "ekle") {
qstr = 'islem=ekle&key='+escape(zimbirti)+'&value='+escape(deger);
}
self1.xmlHttpReq.send(qstr);


gibi yaparsak, araci.php'ye aynı zamanda $_POST['islem'] icerisinde ekle veya sil olarak degisik belirtec gondermis oluyoruz. Buradaki duruma gore, araci.php ya session a ekleme yapar, ya da unset.

legalpara oynamadım hiç,ondan tam anlamamış olabilirim ;)
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Angelo teşekkür ederim. Mantığını anlamam konusunda bana çok yardımcı oldun. Dün çok aradım ama ilk defa ilgilendiğim için pek birşey anlayamamıştım. Şimdi nereden devam edeceğimi biliyorum artık.

Son düzenlemeleri örnek olması açısından veriyorum...

PHP:
<?PHP
session_start();
?>
<script language="Javascript">
function tikladim(zimbirti,deger,islem) {

var xmlHttpReq1 = false;
var self1 = this;
var element = document.getElementById('yazburaya');
    
  if (window.XMLHttpRequest) {
  self1.xmlHttpReq = new XMLHttpRequest();
  }
       
  else if (window.ActiveXObject) {
  self1.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  }


self1.xmlHttpReq.open('POST', 'araci.php', true);
self1.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    
    self1.xmlHttpReq.onreadystatechange = function() {
        
        if (self1.xmlHttpReq.readyState == 4) {
        element.innerHTML = self1.xmlHttpReq.responseText;
        }
    
    }
    
if (islem == "sil") {
qstr = 'islem=sil&key='+escape(zimbirti);
}
else if (islem == "ekle") {
qstr = 'islem=ekle&key='+escape(zimbirti)+'&value='+escape(deger);
}
self1.xmlHttpReq.send(qstr);

}
</script>

<b>16</b><br>
<a href="javascript: void(0)" onClick="tikladim('16','A','ekle');">A</a>
<a href="javascript: void(0)" onClick="tikladim('16','B','ekle');">B</a>
<a href="javascript: void(0)" onClick="tikladim('16','C','ekle');">C</a>

<br><br>
<b>17</b><br>
<a href="javascript: void(0)" onClick="tikladim('17','A','ekle');">A</a>
<a href="javascript: void(0)" onClick="tikladim('17','B','ekle');">B</a>
<a href="javascript: void(0)" onClick="tikladim('17','C','ekle');">C</a>

<br><br>
<div id="yazburaya"></div>

Ajax PHP dosyasi (araci.php)
PHP:
<?PHP
session_start();

if ($_POST['islem'] == "ekle") {
if ($_POST['key'] != '') {
  $key = $_POST['key'];
  $_SESSION['tiklananlar'][$key] = $_POST['value'];
  }

  foreach ($_SESSION['tiklananlar'] as $key=>$value) {
  echo $key." icin ".$value." tiklandi<br>";
  ?>
  <a href="javascript: void(0)" onClick="tikladim('16','A','sil');">Sil</a>
  <?
  }
 
}
if ($_POST['islem'] == "sil") {

 if ($_POST['key'] != '') {
  $key = $_POST['key'];
  unset($_SESSION['tiklananlar'][$key]);
  }

if ($_POST['key'] != '') {
  $key = $_POST['key'];
  $_SESSION['tiklananlar'][$key] = $_POST['value'];
  }

  foreach ($_SESSION['tiklananlar'] as $key=>$value) {
  echo $key." icin ".$value." tiklandi<br>";
  }
}
?>

Tek sorunum sildikten sonra silinen içeriğe ait bilgi çıkıyor. Bunuda galiba php ile halledebiliriz.

İlgin için tekrar teşekkür ederim.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Döndürüp yazdırma kısmı (foreach) bir kere yapman yeterli. İşlemin cinsine göre ya ekle ya sil işini yaptırıp. Scriptin geri kalan kısmında işlem ne olursa olsun foreach yaptıracaksın.

PHP:
<?PHP
session_start();

if ($_POST['islem'] == "ekle") {
// ekle islemi
  if ($_POST['key'] != '') {
  $key = $_POST['key'];
  $_SESSION['tiklananlar'][$key] = $_POST['value'];
  }

}
 
if ($_POST['islem'] == "sil") {
// sil islemi
 if ($_POST['key'] != '') {
 $key = $_POST['key'];
 unset($_SESSION['tiklananlar'][$key]);
 }

}


// islemler bitti, ekrana elde kalanlari yazdir.

  foreach ($_SESSION['tiklananlar'] as $key=>$value) {
  echo $key." icin ".$value." tiklandi<br>";
  }
?>

[/PHP]
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Tekrar teşekkür ederim... Çok istedim ama sana rep veremiyorum :D
 

solaxay

0
İyinet Üyesi
Katılım
17 Ocak 2011
Mesajlar
4
Reaction score
0
merhaba arkadaşlar....

Elimde ki bir manşeti editledim... ama takıldığım sadece bir yer var. "select" yani script key=manset olan haberleri aliyor manset olarak siraliyor... her sey çalışıyor.
tek bir sorun var manset acıldığı zaman scriptin 1-ci haberi seçilmiş yapması lazım. yani açıldığı zaman bütün haberlerin büyük resimleri ve başlıkları üst-üste gözüküyor.. haberlerin her hangi birinin üzerine gittiyimiz zaman (mouseUp) sorun çözülüyor.. hataya baka bilirsiniz http://azerinform.com

neyse türkçem zaten iyi değil bilmiyorum acaba anlata bildimmi.. dosyaları alıp inceleyen olursa sevinirim...


manset.php
script.js
manset.css

işte dosyalar aşağıdaki linkde

http://meqasigorta.az/dosyalar.rar

teşekkürler
 

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.

Üst