Js sonraki sayfaya post gönderme
bu şekilde verilerimi alıyorum
ve bu verilerin sonraki sayfaya yönlendirme ile gitmesini istiyorum.
fakat post ya boş gidiyor yada arkaplanda gidiyor haliyle
bu durumu nasıl aşabilirim.
var SatinAlHeader = {
'SatinAl': function(uid,fiyat,adet,ip,urunid,urunadi,adsoyad,telefon,gsm,email,adres) {
$('#SatinAl-header').click(function() {
$(this).addClass('loading')
});
var Udata = {
'uid' : uid,
'fiyat' : fiyat,
'adet' : adet,
'ip' : ip,
'urunid' : urunid,
'urunadi' : urunadi,
'adsoyad' : adsoyad,
'telefon' : telefon,
'gsm' : gsm,
'email' : email,
'adres' : adres
}
$.ajax({
url:'/SatinAl/',
type: 'post',
data: Udata,
success: function(data) {
// window.location.href = '/SatinAl/';
window.location.assign(data);
}
});
},
'remove': function() {
}
}
<a class="btn btn-success mb-1 mt-1"
onClick="SatinAlHeader.SatinAl(
'<?php echo $userd ?>',
'<?php echo Fiyatlandirma("parabirimi",$_SESSION["parabirimi"],$oku["fiyat"]); ?>',
'1','<?php echo ipadres(); ?>',
'<?php echo $oku["id"] ?>',
'<?php echo $oku["adi"] ?>',
'<?php echo $uye["adsoyad"] ?>',
'<?php echo $uye["tel"] ?>',
'<?php echo $uye["gsm"] ?>',
'<?php echo $uye["email"] ?>',
'<?php echo $uye["adres"] ?>')"
href="nojavascript...;" id="SatinAl-header" >
<i class="fa fa-star"></i> Satın Al
</a>
şimdiden teşekkürler.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Burada mantık hatası var gibi gözüküyor.
JQuery'de $.ajax fonksiyonu arkaplanda çalışır.
$.ajax({
url:'/SatinAl/',
type: 'post',
data: Udata,
success: function(data) {
// Udata değişkeni 'SatinAl' linkine gönderilir ve geriye dönen sonucu data değişkenine atar
}
});
Udata değişkeni 'SatinAl' linkine gönderilir ve geriye dönen sonucu data değişkenine atar. Süslü parantez içine en son yapılacak işlemleri girmelisiniz.
Çözüm:
Tüm bunlar yerine gizli bir form oluşturun. Form ile post edin. İnput içine json türünde verilerinizi koyun ve diğer taraftan php ile 'json_decode' ile alınız.
<form action="SatinAl" method="post">
<input style="visibility:hidden" name="data" type="text" value="<?php echo '{
'.$userd.'
'.Fiyatlandirma("parabirimi",$_SESSION["parabirimi"],$oku["fiyat"]).'
'.ipadres().'
'.$oku['id'].'
'.$oku['adi'].'
'.$uye['adsoyad'].'
'.$uye['tel'].'
'.$uye['gsm'].'
'.$uye['email'].'
'.$uye['adres'].'
}' ?>">
<button class="btn btn-success mb-1 mt-1">Satın Al</button>
</form>
Verileri almak için;
<?php
$data = json_decode($_POST['data']);
//print veya echo ile kullanabilirsin
print_r($data); //verilerin tamamını ekrana yazdırır
echo $data[0]; //ilk veriyi ekrana yazdırır
?>
Umarım yardımcı olur. Kolay gelsin.