Neden PHP karşılaştırma izin vermiyor?

4 Cevap php

Ben veritabanı benim tabloda bir giriş "evet" veya "hayır" olarak ayarlayın ve otomatik karşılık radyo düğmesini kontrol eğer okumak için PHP kullanıyorum:

<?php include 'file.php';
$query = "SELECT * FROM TABLE";
$runquery = odbc_exec($connect,$query);
$status= odbc_result($runquery,"status");
odbc_close($file);
?>
<form>
<div class="formContainer">
    <fieldset>
    <legend>Campus Alert<span class="tooltip">Turn campus alert on and off.</span></legend>
        <?php echo $status; ?>
        Yes <input type="radio" name="alertStatus" id="alertStatus" value="yes" <?php if($status== "yes") echo "checked";?>>
        No <input type="radio" name="alertStatus" id="alertStatus" value="no" <?php if($status== "no") echo "checked";?>>
    </fieldset>
</div>

<?php echo $status; ?> bu yüzden veritabanı diyor ve formun tepki doğru emin ne yapabilir hata ayıklama içindir. "Evet" (tırnak işaretleri yok) It yazdırır. Ancak, eğer deyim yanıt vermez. Herhangi bir fikir neden bu yapıyor?

4 Cevap

Eğer böyle bir şey için eğer ifadeleri değiştirmeyi denedim

<?php if(strtolower(trim($status)) == "yes") echo "checked";?>

Bu $status, bir int veya boolean değerini kullanarak daha iyi konum için "evet / hayır" kullanmak için çok iyi bir uygulama değil.

Vay, bu gerçekten garip ... sorun PHP ile değildir. Her şeyden önce, sen bu alanlardan id özellikleri kaldırmak gerekir. Ama asıl mesele Firefox bu adı alertStatus sahip olduğunda ikinci alanı kontrol etmek isteyen görünmüyor olmasıdır. Başka bir şey için adını değiştirmek, eğer çalışıyor gibi görünüyor. Ben bu olsa neden gerçekten emin değilim.

İşte benim test kodu:

<?php //include 'file.php';
//$query = "SELECT * FROM TABLE";
//$runquery = odbc_exec($connect,$query);
//$status= odbc_result($runquery,"status");
//odbc_close($file);
$status='no';
?>
<form>
<div class="formContainer">
    <fieldset>
    <legend>Campus Alert<span class="tooltip">Turn campus alert on and off.</span></legend>
        <?php echo $status; ?>
        Yes <input type="radio" name="alertStatu" value="yes" <?php if($status== "yes") echo "checked";?>>
        No <input type="radio" name="alertStatu" value="no" <?php if($status== "no") echo "checked";?>>
    </fieldset>
</div>

Eğer sayfa kaynağında bakarsanız check aslında orada olduğunu görürsünüz. Ancak, yinelenen bir kimliği var ve tarayıcı karışık oluyor. Değiştir:

Yes <input type="radio" name="alertStatus" id="alertStatus" ....>
No <input type="radio" name="alertStatus" id="alertStatus" .....>

ile

Yes <input type="radio" name="alertStatus" id="alertStatus:yes" ....>
No <input type="radio" name="alertStatus" id="alertStatus:no" .....>

ve bunu düzeltmek olacak.