lostyazilim
tr.link

Yardım Lütfen.. Aynı sayfada Json veri gönderip işlem yapıp geri almak

8 Mesajlar 1.378 Okunma
acebozum
tr.link

ajansmesut ajansmesut WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 48 / E
  • Meslek Reklam-Webmaster
  • Konum Ankara
  • Ad Soyad M** N**
  • Mesajlar 114
  • Beğeniler 21 / 10
  • Ticaret 0, (%0)
Bir sayfada PHP ile oluşturduğum dinamik bir json verim var. Bunu $gonder_bi_json adında bir değişekene atadım. Bu değişkende örneğin şöyle bir veri gerçekleşiyor. {"data":[{"A_mac_ID":"3559686"},{"A_mac_ID":"3565717"}]}
bu veriyi ajax yönetim ile başka bir sayfaya işlem yapmak üzere göndermek istiyorum.

şeklinde bir input alanına yerleştiriyorum veriyi ancak post edemiyorum.
Veriyi göndermek için javascript ile şu şekilde bir kod kullanıyorum.

<script>

$('.oranlarigetir').click(function(){

var odak_idler = $("#odak_idler").val();

$.ajax({

method:"POST",
url: "oranidpost.php",
dataType: 'json',
type: 'post',
contentType: 'application/json',
data: JSON.parse(odak_idler);
processData: false,

error:function(){ $('.dtb_alani').html("Hata"); },
success:function(data){
$('.dtb_alani').html(data);
}

});


});

</script>


veriyi gönderemiyorum. Göndersem de gönderdiğim sayfada nasıl bir işlem yapmam gerekir. Gönderdiğim sayfada (oranidpost.php) şöyle bir kod ile verileri almaya çalışıyorum.

$gelen_post= $_POST["odak_idler"];
echo $gelen_post;


Benim dinamik olarak bu jsonda oluşturulan verileri gönderip (A_mac_ID) numaralarını şu şekilde post edilmesini istiyorum ki sorgularımda kullanıp tekrar div içersinde sonuçları gösterebileyim. ('3559686','3565717',....) gibi

yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.
 

 

Dünya Koca bir YALAN.. İnanmak isteyene..!
elektronikssl
webimgo

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 321
  • Ticaret 19, (%100)
Hocam böyle bir sorununuz var etiketlesenize beni :)

şeklinde kullanın string değere dönüşsün sonra bunu data: JSON.parse(odak_idler); yerine
data: {"odak_idler" : odak_idler}; şeklinde gönderin sonra hedef phpnizde
$gelen_post= $_POST["odak_idler"];
yerine
$gelen_post= json_decode($_POST["odak_idler"]);
yapın veriyi json olarak almış olacaksınız ondan sonra ne yapmak istediğiniz size kalmış :)
ajansmesut

kişi bu mesajı beğendi.

ajansmesut ajansmesut WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 48 / E
  • Meslek Reklam-Webmaster
  • Konum Ankara
  • Ad Soyad M** N**
  • Mesajlar 114
  • Beğeniler 21 / 10
  • Ticaret 0, (%0)

edcsmile adlı üyeden alıntı

Hocam böyle bir sorununuz var etiketlesenize beni :)

şeklinde kullanın string değere dönüşsün sonra bunu data: JSON.parse(odak_idler); yerine
data: {"odak_idler" : odak_idler}; şeklinde gönderin sonra hedef phpnizde
$gelen_post= $_POST["odak_idler"];
yerine
$gelen_post= json_decode($_POST["odak_idler"]);
yapın veriyi json olarak almış olacaksınız ondan sonra ne yapmak istediğiniz size kalmış :)


Çok sağolun edcsmile hocam.. Söylediklerinizi heyecanla denedim ama olmadı maalesef.



şimdi $datam dizisi içersindeki bilgiler olduğu için input value da yukarıda ki gibi kullandım.



<script>

$('.oranlarigetir').click(function(){

var odak_idler = $("#odak_idler").val();

//alert("Veriler Listeleniyor.. Bu işlem maç sayısına bağlı olarak uzun sürebilir.. Çok yoğun verilerde tarayıcınızı kitleyebilir..");



$.ajax({

method:"POST",
url: "oranidpost.php",
dataType: 'json',
type: 'post',
contentType: 'application/json',
data: {"odak_idler" : odak_idler},


error:function(){ $('.dtb_alani').html("Hata"); },
success:function(data){
$('.dtb_alani').html(data);
}

});


});

</script>



Şimdi bu şekilde ilgili olay butonuna tıkladığımda hata yazıyor.
 

 

Dünya Koca bir YALAN.. İnanmak isteyene..!

ajansmesut ajansmesut WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 48 / E
  • Meslek Reklam-Webmaster
  • Konum Ankara
  • Ad Soyad M** N**
  • Mesajlar 114
  • Beğeniler 21 / 10
  • Ticaret 0, (%0)
@edcsmile sorunu şu şekilde çözdüm. Ancak yine de yardımınıza ihtiyacım var.


json olarak değil dizi halinde gönderdim.







<script>

$('.oranlarigetir').click(function(){

var odak_idler = $("#odak_idler").val();

$.ajax({

method:"POST",
url: "oranidpost.php",

data: {"odak_idler" : odak_idler},


error:function(){ $('.dtb_alani').html("Hata"); },
success:function(data){
$('.dtb_alani').html(data);
}

});


});

</script>


Bu şekilde sayfaya ajax ile diziyi post ediyor ve şu şekilde geri dönüyor.

Array ( [0] => Array ( [A_mac_ID] => 3559686 ) [1] => Array ( [A_mac_ID] => 3565717 ) )

bu veriyi de şu kodlar ile alıyorum.

gelen_post= json_encode($_POST["odak_idler"]);
//echo $gelen_post;
$cevir_json = json_decode($gelen_post, true);
echo $cevir_json;


Fakat bu verileri parçalayamadım. Foreach ile parçalamaya çalıştım. Sizlerden ricam dizide bulunan [A_mac_ID] anahtarındaki verileri düzenli bir şekilde soruguya aktarabilmem için bir yapı oluşturmak için fikrinizdir. Nasıl yapabilirim.?
 

 

Dünya Koca bir YALAN.. İnanmak isteyene..!
wmaraci
wmaraci

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 321
  • Ticaret 19, (%100)
Array ( [0] => Array ( [A_mac_ID] => 3559686 ) [1] => Array ( [A_mac_ID] => 3565717 ) )

Eğer data bu şekilde geliyosa foreach ile dönebilirsiniz hocam şöyle deneyin anlamak için

foreach( $donecekData as $newData )
{
print_r($newData); // burada gelen datayı print_r yardımıyla bakın nasıl veriyo geliyor diye ona göre anahtarını veya karşılığını almak kolay
die(); // sistem daha bitmediği için ilk veride direkt sayfayı öldürün gelen datayı görün sonra burayı silersiniz
}
 

 

ajansmesut ajansmesut WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 48 / E
  • Meslek Reklam-Webmaster
  • Konum Ankara
  • Ad Soyad M** N**
  • Mesajlar 114
  • Beğeniler 21 / 10
  • Ticaret 0, (%0)
edcsmile Bu şekilde veri döndürmedi. Nerede hata yapıyorum acaba..
 

 

Dünya Koca bir YALAN.. İnanmak isteyene..!

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 321
  • Ticaret 19, (%100)
Özelden anydesk iletin hocam bakalım
 

 

ajansmesut ajansmesut WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 48 / E
  • Meslek Reklam-Webmaster
  • Konum Ankara
  • Ad Soyad M** N**
  • Mesajlar 114
  • Beğeniler 21 / 10
  • Ticaret 0, (%0)

ajansmesut adlı üyeden alıntı

edcsmile Bu şekilde veri döndürmedi. Nerede hata yapıyorum acaba..


sorunum @edcsmile tarafından çözülmüştür. çözümü aşağıdadır.





<script>

$('.oranlarigetir').click(function(){

var odak_idler = $("#odak_idler").val();

//alert("Veriler Listeleniyor.. Bu işlem maç sayısına bağlı olarak uzun sürebilir.. Çok yoğun verilerde tarayıcınızı kitleyebilir..");


$.ajax({

method:"POST",
url: "oranidpost.php",

data: {"odak_idler" : odak_idler},


error:function(){ $('.dtb_alani').html("Hata"); },
success:function(data){
$('.dtb_alani').html(data);
}

});


});

</script>



bu diziyi post edip oranidpost.php sayfama gönderiyor. Bu sayfada verileri alışımız ise şu kodlar ile

$mac_ids = "";
$gelen_post = (array)base64_decode($_POST["odak_idler"]);
foreach( json_decode($gelen_post[0], true) as $data )
{
$mac_ids .= "{$data["A_mac_ID"]}, ";
}
$mac_ids = mb_substr($mac_ids, 0, -2);
$where = "WHERE hedef IN ({$mac_ids})";
echo $where;


Bu şekilde sorguda kullanacağım şekilde verileri sayfaya aktardı.
ikodev

kişi bu mesajı beğendi.

Dünya Koca bir YALAN.. İnanmak isteyene..!
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al