Nokta birleştirme operatörünün kullanımı.
Merhabalar. ajax yapısı ile geriye html kod döndürüyorum ve bunu modalda gösteriyorum. Modal içerisinde form var ve form'da 2 li radio form var. Veritabanından teklifStatu 1 gelirse 1 numaralı radioyu checked yapmak istiyorum. 2 gelirse 2 numaralı radioyu checked yapmak istiyorum.
nokta birleştirme operatörü ile ternary operatörü denedim ama parçalayamadım. Başka alternatif ne olabilir veya nokta operatörü ile ternaryi nasil oluşturabilirim.
<?php
<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? checked : '' .'>
...
..
.
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (11)
Anlam veremedim ama parantez içerisine alınca bende sorun çıkmadı.
<div class="col-md-6">
<label class="form-check-label">Teklif Durumu :</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu" id="inlineRadio11" value="1" '. ($musterilerEdit['musteri_teklifStatu'] == 1 ? "checked" : "") .'/>
<label class="form-check-label" for="inlineRadio11">Teklif Verildi</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu" id="inlineRadio22" value="2" '. ($musterilerEdit['musteri_teklifStatu'] == 2 ? "checked" : "") .'/>
<label class="form-check-label" for="inlineRadio22">Teklif Verilmedi</label>
</div>
</div>
@makifgokce teşekkür ederim hocam. Bir başka yol olarak switch case ile de çözdüm. Parantez olayını bilmem iyi oldu denedim sorun yok hocam. teşekkür ederim çözümünüz için.
Kalabalık etmesin diye bazı form-groupları kaldırdım. Aydın hocam anlayamadım dediğinizi. Aşağıya şuan itibariyle attım. Olayı çözersem diğer cevap-durumu form için gerçekleştirecem.
<?php
if (isset($_POST['musteriduzenle'])) {
$musteriEditid = $_POST['musteriduzenle'];
$sorgu = $dbNew->prepare('SELECT * FROM musteri_takip WHERE musteri_id = ?');
$sorgu->execute([$musteriEditid]);
$musterilerEdits = $sorgu->fetchAll(PDO::FETCH_ASSOC);
$html = '';
function checkRadio($gelenValue){
return $gelenValue == 1 ? 'checked' : '';
};
function checkRadio2($gelenValue){
return $gelenValue == 2 ? 'checked' : '';
};
foreach ($musterilerEdits as $musterilerEdit) {
$html .= '<div class="modal-header">
<h4>Müşteri Düzenleme Formu</h4>
</div>
<div class="modal-body">
<form id="guncelleForm" action="islem/islem.php" method="post" class="container">
<div class="form-group">
<div class="row">
<div class="col-md-12">
<label for="">Adı Soyadı</label>
<input type="text" class="form-control" name="ad-soyad"
placeholder="Adı soyadı yazınız." value="' . $musterilerEdit['musteri_adSoyad'] . '" required>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-6">
<label class="form-check-label" for="">Cevap Durumu :</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="cevap-durumu"
id="inlineRadio1" value="1">
<label class="form-check-label" for="inlineRadio1">Olumlu</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="cevap-durumu"
id="inlineRadio2" value="2">
<label class="form-check-label" for="inlineRadio2">Olumsuz</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="cevap-durumu"
id="inlineRadio3" value="0">
<label class="form-check-label" for="inlineRadio3">Cevap Bekleniyor</label>
</div>
</div>
<div class="col-md-6">
<label class="form-check-label" for="">Teklif Durumu :</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . checkRadio($musterilerEdit['musteri_teklifStatu']) .'>
<label class="form-check-label" for="inlineRadio11">Teklif Verildi</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu"
id="inlineRadio22" value="2" ' . checkRadio2($musterilerEdit['musteri_teklifStatu']) .'>
<label class="form-check-label" for="inlineRadio22">Teklif Verilmedi</label>
</div>
</div>
</div>
</div>
<input type="hidden" name="musteri-form-id" value="' . $musterilerEdit['musteri_id'] . '">
<input type="hidden" name="musteri-duzenle" value="musteri duzenle">
<button type="submit" class="btn btn-success btn-hesabim col-md-12 guncelle-musteri">Güncelle
</button>
</form>
</div>';
}
echo $html;
}
?>
fonksiyon 1 kere yazılır neden her radio için uğraşıyorsun
valu değerinden sonra <php if(radi1 == 1 and radi2 == 0) { echo "checekde radi1";}elseif(radi == 2 and radi == 1){ echo "checked raid2 ";}?>
üstüne yazdığın fonksiyonda 2 kere yazmana bence gerek bile yok
function CheckRadio($gelenValue){
return $gelenValue == 2 ? 'checked' : '';
}
sonuctu fonksiyonu değer gönderiyorsun
echo CheckRadi($gelenradio1) else echo CheckRadio($gelenradi2)
ve sen kodlarını bi tam satır paylaş da burda yardım etmek isteyenler niye olmadığını görsün
makifgokce zaten net bir şekilde vermiş.
o sen tırnak koymadın diye tırnak koymuş ne bilsin değişkene atamadığını :)
Sorunu ancak şu şekilde çözdüm ama bunun kolay yolu olması lazım. çünkü her radio için bir fonksiyon yapmak zorundayım bulduğum yöntemle. O da şu ;
function checkRadio($gelenValue){
return $gelenValue == 1 ? 'checked' : '';
};
function checkRadio2($gelenValue){
return $gelenValue == 2 ? 'checked' : '';
};
Devamında ;
$html .= '<div class="col-md-6">
<label class="form-check-label" for="">Teklif Durumu :</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . checkRadio($musterilerEdit['musteri_teklifStatu']) .'>
<label class="form-check-label" for="inlineRadio11">Teklif Verildi</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu"
id="inlineRadio22" value="2" ' . checkRadio2($musterilerEdit['musteri_teklifStatu']) .'>
<label class="form-check-label" for="inlineRadio22">Teklif Verilmedi</label>
</div>
</div>';
Bu şekilde checkRadio($musterilerEdit['musteri_teklifStatu']) kullanarak çözüyorum ama her radio için fonksiyon yazmak zorundayız. Şuan sorun çözüldü sorun daha kolay ve basit yolunu bulmak :)
Yok yusuf hocam bu da olmadı.
$html = '';
$html .= '<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? 'checked' : '' . ' >';
echo $html;
Olayım tamamen bu kod. Yapı tamamen bu. Burada checked yazdırmam lazım.
<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" <?=$user["musteri_teklifStatu"]== 1 ? "checked" : null?>'>
$html = '<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? 'checked' : '' . ' >';
echo $html;
bu şekilde gösterdiğiniz gibi yapmam lazım ama çalışmıyor. 'checked' : '' olan yerde en son tırnak işareti hata veriyor.
.
ile birleştirmek için string bir ifade olması lazım.
$html = '<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? 'checked' : '' . ' >';
echo $html;
eğer html olarak tırnaksız yazacaksan aşağıdaki gibi yap
<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" <?php echo $user['musteri_teklifStatu']== 1 ? 'checked' : ''; ?>/>
Yok hocam olmadı inputu tırnak içine almışsınız ama bu sefer komple hata verdi.
'<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? 'checked' : '' . ' >'