lostyazilim
tr.link

PHP - jQuery Ajax Kullanımında Problem

13 Mesajlar 1.935 Okunma
acebozum
tr.link

Lions Lions WM Aracı Kullanıcı
  • Üyelik 05.05.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Web-Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 1025
  • Beğeniler 366 / 534
  • Ticaret 5, (%100)
Merhabalar. PHP'de online bir test hazırladım. Bu testin mantığı tıpkı Onedio testi gibi işlemektedir yani testte "doğru" cevap yok. Her cevabın belli bir puanı var ve test sonuçlandığı zaman alınan puan aralığında tanımlanan sonucu göstermekte. Buraya kadar hiçbir problem yok ve test çalışmakta.

Problem: Testin HTML'ini sayfada kullanırken "SONUÇ" butonuna tıkladığı zaman var olan sayfada sonucu göstermek yerine PHP dosyasını açarak sonucu orada gösteriyor. Bunu düzeltmek için jQuery Ajax post yöntemini denedim ancak PHP'de pek iyi olmadığım ve Ajax Post yöntemi genellikle belli bir text inputuna sahip işlemler için anlatıldığından yapamadım. Yani anlatılan tüm Ajax Post konularında bir text alanı açılıyor buraya ad, soyad vb. bilgiler giriliyor ve "Gönder" butonuna tıklayınca Ajax Post girdileri aynı sayfaya tekrar gönderip gösteriyor.

Ancak benim yapmaya çalıştığım şey; bir text girdisinden ziyade PHP'de yapılan bir işemin ($d) göstermesini istiyorum fakat bir türlü beceremedim. Yardımcı olursanız sevinirim.

Kodlar;

Sayfanın tagları arasına eklediğim;
<script></script>

<script> </script> tagları arasına eklediğim;

function gonder() {
jQuery.ajax({
type: 'POST'
url: 'testaraci.php',

data: $('#veri-formu').serialize(),
error:function(){ $('#yazdir').html("Bir hata algılandı."); },
success: function(veri) { $('#yazdir').html(veri);}
});
}


Sonuç bölümüne eklediğim;





testaraci.php dosyama eklediğim;


$veri = $_POST['sonucbutonu']
echo "$d";


$d = Testte alınan toplam puan. Bunu göstermesini istiyorum yani ilk sayfada.
Şimdiden teşekkür ederim.
 

 

elektronikssl
webimgo

mxaksoy mxaksoy Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 23.03.2018
  • Yaş/Cinsiyet 29 / E
  • Meslek Webmaster
  • Konum İstanbul Avrupa
  • Ad Soyad M** A**
  • Mesajlar 1358
  • Beğeniler 482 / 344
  • Ticaret 3, (%100)
echo $d ve sonuc butonu olan yeri kapatın.
Lions

kişi bu mesajı beğendi.

Lions Lions WM Aracı Kullanıcı
  • Üyelik 05.05.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Web-Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 1025
  • Beğeniler 366 / 534
  • Ticaret 5, (%100)
mxaksoy

Hocam kapalı aslında;

 

 

Lions Lions WM Aracı Kullanıcı
  • Üyelik 05.05.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Web-Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 1025
  • Beğeniler 366 / 534
  • Ticaret 5, (%100)
Yardımcı olursanız sevinirim.
 

 

wmaraci
wmaraci

stk27 stk27 WM Aracı Kullanıcı
  • Üyelik 16.12.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek web programcılık
  • Konum Gaziantep
  • Ad Soyad S** A**
  • Mesajlar 89
  • Beğeniler 67 / 19
  • Ticaret 1, (%0)
Lions

data: $('#veri-formu').serialize(),

burda verilerini gönderdiğiniz formuda eklermisiniz

daha doğrusu tüm kodları eklerseniz daha iyi olur anlamadım ne yapmak istediğinizi ve ne hatası aldığınızı
 

 

Lions Lions WM Aracı Kullanıcı
  • Üyelik 05.05.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Web-Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 1025
  • Beğeniler 366 / 534
  • Ticaret 5, (%100)
stk27
Hocam yapmaya çalıştığım şey "Skala Göster" butonuna bastınca hesaplanan toplam puanı html sayfasında gösterecek. Fakat burada PHP sayfasında gösteriyor. Bu HTML kısmı:



<script></script>



Hesaplama Aracı


<script>
function gonder() {
jQuery.ajax({
type: 'POST'
url: 'hesaplamaaraci.php'
data: $('#veri-formu').serialize()
});
}
</script>




1) Kaç yıldır futbol oynuyorsunuz?


1 Yıldan Az
      1 Yıldır
      2 Yıldır
      3 Yıldır
      4 Yıldır
      5 Yıl ve Daha Fazla





2) Kaç Yabancı Dil Biliyorsunuz


Hiç
     1
     2
     3
     4
     5+


Lütfen Bildiğiniz Dilleri Sırasıyla Yazınız:

   




3) Futbolla ilgili bguüne kadar kaç eğitime katıldınız?


Hiç
     1
     2
     3
     4
     5+





4) Futbolla İlgili Herhangi Bir Başarınız Oldu Mu?


Evet
     Hayır


Cevabınız Evet İse Lütfen Yazınız:

   




5) Futbolu Hangi Programdan Mezun Olarak İcra Etmektesiniz?


İlkokul
     Lise
     Ön Lisans
     Lisans
     Yüksek Lisans
     Doktora




6) Futbolla ilgili bugüne kadar kaç eğitime katıldınız?


Hiç
     1
     2
     3
     4
     5+




7) Kaç takımda oynadınız?


Hiç
     1
     2
     3
     4
     5+













Bu da PHP kısmı:



if (isset($_POST['r']) &
isset($_POST['rr']) &
isset($_POST['rrr']) &
isset($_POST['rrrr']) &
isset($_POST['rrrrr']) &
isset($_POST['rrrrrr']) &
isset($_POST['rrrrrr'])) {
$soru1 = $_POST['r'];
$soru2 = $_POST['rr'];
$soru3 = $_POST['rrr'];
$soru4 = $_POST['rrrr'];
$soru5 = $_POST['rrrrr'];
$soru6 = $_POST['rrrrr'];
$soru7 = $_POST['rrrrrr'];
$d = 0;


if($soru1=="a" ) { $d = $d+267; }
if($soru1=="b" ) { $d = $d+367; }
if($soru1=="b" ) { $d = $d+567; }
if($soru1=="c" ) { $d = $d+767; }
if($soru1=="d" ) { $d = $d+967; }
if($soru1=="e" ) { $d = $d+1167; }
if($soru1=="f" ) { $d = $d+1567; }


if($soru2=="a") { $d = $d+267; }
if($soru2=="b") { $d = $d+467; }
if($soru2=="c") { $d = $d+667; }
if($soru2=="d") { $d = $d+967; }
if($soru2=="e") { $d = $d+1367; }
if($soru2=="f") { $d = $d+1867; }


if($soru3=="a") { $d = $d+267; }
if($soru3=="b") { $d = $d+367; }
if($soru3=="c") { $d = $d+467; }
if($soru3=="d") { $d = $d+567; }
if($soru3=="e") { $d = $d+667; }
if($soru3=="f") { $d = $d+767; }


if($soru4=="a") { $d = $d+567; }
if($soru4=="b") { $d = $d+268; }


if($soru5=="a") { $d = $d+267; }
if($soru5=="b") { $d = $d+367; }
if($soru5=="c") { $d = $d+467; }
if($soru5=="d") { $d = $d+667; }
if($soru5=="e") { $d = $d+967; }
if($soru5=="f") { $d = $d+1267; }


if($soru6=="a") { $d = $d+267; }
if($soru6=="b") { $d = $d+367; }
if($soru6=="c") { $d = $d+467; }
if($soru6=="d") { $d = $d+567; }
if($soru6=="e") { $d = $d+667; }
if($soru6=="f") { $d = $d+767; }


$veri = $_POST['sonucbutonu'];
echo "$d";

}
?>
 

 

stk27 stk27 WM Aracı Kullanıcı
  • Üyelik 16.12.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek web programcılık
  • Konum Gaziantep
  • Ad Soyad S** A**
  • Mesajlar 89
  • Beğeniler 67 / 19
  • Ticaret 1, (%0)
Lions




<script></script>



Hesaplama Aracı
<script>
function gonder() {
jQuery.ajax({
type: 'POST',
url: 'hesaplamaaraci.php',
data: $('#veri-formu').serialize() ,
success : function(e){
$('#cevap').html(e);
}
});
}
</script>






1) Kaç yıldır futbol oynuyorsunuz?


1 Yıldan Az
      1 Yıldır
      2 Yıldır
      3 Yıldır
      4 Yıldır
      5 Yıl ve Daha Fazla





2) Kaç Yabancı Dil Biliyorsunuz


Hiç
     1
     2
     3
     4
     5+


Lütfen Bildiğiniz Dilleri Sırasıyla Yazınız:

   




3) Futbolla ilgili bguüne kadar kaç eğitime katıldınız?


Hiç
     1
     2
     3
     4
     5+





4) Futbolla İlgili Herhangi Bir Başarınız Oldu Mu?


Evet
     Hayır


Cevabınız Evet İse Lütfen Yazınız:

   




5) Futbolu Hangi Programdan Mezun Olarak İcra Etmektesiniz?


İlkokul
     Lise
     Ön Lisans
     Lisans
     Yüksek Lisans
     Doktora




6) Futbolla ilgili bugüne kadar kaç eğitime katıldınız?


Hiç
     1
     2
     3
     4
     5+




7) Kaç takımda oynadınız?


Hiç
     1
     2
     3
     4
     5+
















if (isset($_POST['r']) &
isset($_POST['rr']) &
isset($_POST['rrr']) &
isset($_POST['rrrr']) &
isset($_POST['rrrrr']) &
isset($_POST['rrrrrr']) &
isset($_POST['rrrrrr'])) {
$soru1 = $_POST['r'];
$soru2 = $_POST['rr'];
$soru3 = $_POST['rrr'];
$soru4 = $_POST['rrrr'];
$soru5 = $_POST['rrrrr'];
$soru6 = $_POST['rrrrr'];
$soru7 = $_POST['rrrrrr'];
$d = 0;


if($soru1=="a" ) { $d = $d+267; }
if($soru1=="b" ) { $d = $d+367; }
if($soru1=="b" ) { $d = $d+567; }
if($soru1=="c" ) { $d = $d+767; }
if($soru1=="d" ) { $d = $d+967; }
if($soru1=="e" ) { $d = $d+1167; }
if($soru1=="f" ) { $d = $d+1567; }


if($soru2=="a") { $d = $d+267; }
if($soru2=="b") { $d = $d+467; }
if($soru2=="c") { $d = $d+667; }
if($soru2=="d") { $d = $d+967; }
if($soru2=="e") { $d = $d+1367; }
if($soru2=="f") { $d = $d+1867; }


if($soru3=="a") { $d = $d+267; }
if($soru3=="b") { $d = $d+367; }
if($soru3=="c") { $d = $d+467; }
if($soru3=="d") { $d = $d+567; }
if($soru3=="e") { $d = $d+667; }
if($soru3=="f") { $d = $d+767; }


if($soru4=="a") { $d = $d+567; }
if($soru4=="b") { $d = $d+268; }


if($soru5=="a") { $d = $d+267; }
if($soru5=="b") { $d = $d+367; }
if($soru5=="c") { $d = $d+467; }
if($soru5=="d") { $d = $d+667; }
if($soru5=="e") { $d = $d+967; }
if($soru5=="f") { $d = $d+1267; }


if($soru6=="a") { $d = $d+267; }
if($soru6=="b") { $d = $d+367; }
if($soru6=="c") { $d = $d+467; }
if($soru6=="d") { $d = $d+567; }
if($soru6=="e") { $d = $d+667; }
if($soru6=="f") { $d = $d+767; }



echo "$d";

}
?>


gerekli düzenlemeleri yaptım denemedim böyle bir denermisiniz
Lions

kişi bu mesajı beğendi.

stk27 stk27 WM Aracı Kullanıcı
  • Üyelik 16.12.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek web programcılık
  • Konum Gaziantep
  • Ad Soyad S** A**
  • Mesajlar 89
  • Beğeniler 67 / 19
  • Ticaret 1, (%0)
Lions

forma id="veri-formu"
eklemeyi unuttum onuda ekleyin
 

 

Lions Lions WM Aracı Kullanıcı
  • Üyelik 05.05.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Web-Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 1025
  • Beğeniler 366 / 534
  • Ticaret 5, (%100)
stk27

Hocam öncelikle çok teşekkür ederim. Sonucu html sayfasında veriyor ancak sonuç verirken testi kopyalayıp öyle veriyor yani aynı sayfada iki tane test oluyor ve en altta sonucu veriyor.
 

 

stk27 stk27 WM Aracı Kullanıcı
  • Üyelik 16.12.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek web programcılık
  • Konum Gaziantep
  • Ad Soyad S** A**
  • Mesajlar 89
  • Beğeniler 67 / 19
  • Ticaret 1, (%0)
Lions formdaki action="" kısmını silin birde forma onsubmit "return false" ekli durumda demi onuda sonradan düzenleme yaparak eklemiştim belki kopyalarken almamışsındır.
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al