$.ajax({
type: "POST",
url: 'ajax.php',
data: {soru:soru, cevap:id, soruid:soruid},
success: function(cevap){
var jsondata = JSON.parse(cevap);
console.log(jsondata);
}
});ancak şöyle bir sorun var ben burda if ile json data içinde ki değere göre işlem yaptırıcam json içinde ki değerleri nasıl if koşulları sağlarım?
JSON hakkında bilgi yardım
9
●274
- 20-05-2022, 15:58:08merhaba, ajax ile dosyaya post ediyorum ve oradan aldığım json datayı aşağıda ki şekilde parse ediyorum
- 20-05-2022, 16:10:27@dnaz; evet bu şekilde aldım şimdi teşekkür ederim bir sorum daha olacak sana müsaitsen php de soru="<?=$i?>" bu şekilde attr olarak dinamik döndürüyorum ve post ettiğimde bu veriyi gelen json veriden tekrar alıyorum ve şöyle bir koşul koşuyorum
if (jsondata['soru'] == '1') { // aksiyonlarımı buraya yazıcam }aksiyonlarımı yazarken bu soru="<?=$i?>" alanındakilerin arka plan rengini değiştiricem bunu nasıl dinamik veri varken yapabilirim? - 20-05-2022, 16:17:05bunun için her soruya bir dataset eklemeniz gerekir sonra bunları alıp filtreden geçirerek o elementlerin arkaplanlarını değişebilirsiniz.emirkrgz adlı üyeden alıntı: mesajı görüntüle
mesela,
element görünümü => <div class="soru" data-kod="2">soru body...</div> olsun,
gelen jsondaki verilerde tüm div.soru ları alıp onları filtreleyerek dataset değeri 2 olanın arkaplan değerini şu yap demelisiniz.
document.querySelectorAll('div.soru').forEach(function(v){ if(v.dataset.kod == "2"){ v.style.background = "green"; } })gibi gibi olabilir. - 20-05-2022, 16:21:33@dnaz;
altta ki kullanım için örnek bir şema iletebilir misin?
<?php $i = 0; foreach ($sorular as $key => $v) { $i++; ?> <h3><?= $i ?>. SORU BAŞLIK?</h3> <ul> <li class="cevaplar"> <a class="cevap" id="1" soru="<?=$i?>" soruid="<?= $v['id'] ?>" href="#/">A) <?= $v['c1'] ?></a><br> </li> <li class="cevaplar"> <a class="cevap" id="2" soru="<?=$i?>" soruid="<?= $v['id'] ?>" href="#/">B) <?= $v['c2'] ?></a><br> </li> <li class="cevaplar"> <a class="cevap" id="3" soru="<?=$i?>" soruid="<?= $v['id'] ?>" href="#/">C) <?= $v['c3'] ?></a><br> </li> <li class="cevaplar"> <a class="cevap" id="4" soru="<?=$i?>" soruid="<?= $v['id'] ?>" href="#/">D) <?= $v['c4'] ?></a><br> </li> <li class="cevaplar"> <a class="cevap" id="5" soru="<?=$i?>" soruid="<?= $v['id'] ?>" href="#/">E) <?= $v['c5'] ?></a><br> </li> </ul> <br> <br> <?php } ?> - 20-05-2022, 16:42:51Eğer arka plan rengin post işleminin sonucuna bağlıysa ve gelen rengin "renk" içinde olduğunu varsayarsak, bunu if'in içine ekleyerek kullanabilirsin:
$('body').css('background-color', jsondata["renk"]);ya da sadece bir elementin rengini değiştirmek için
$('#test').css('background-color', jsondata["renk"]);Senin örneğinde seçilen şıkla doğru şıkkı ajax.php dosyasında kontrol edip ona göre renk döndürebilirsin. Ve sonuca bağlı olarak kullanıcının seçmiş olduğu şıkka idsine göre arka plan eklersin.
son bir sorum olacak hem $('[soruid="1"]') olanlar ve $('[id="1"]') olanları nasıl yapabilirim?