PHP &

4 Cevap php

Onlar orada hesap ayarlarını kontrol ederken ben onay kutusunun işaretli olup olmadığını kontrol edin ve görmek için kullanıcı için onay işareti görüntülemek için çalışıyorum. Ben onay işareti kullanıcı hesabı ayarları hit her zaman görüntülenecek şekilde PHP kullanarak bu sorunu çözebilirsiniz nasıl bilmek istiyorum?

İşte HTML.

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" />

4 Cevap

Senin sorunun ne olduğunu tam olarak emin değilim. Eğer onay kutusunun işaretli olup olmadığını PHP biliyorsanız, gibi bir şey yapabilirsiniz

echo '<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes"';
if ($somevar) echo ' checked="checked" ';
echo ' />';

Bu $somevar doğru olup olmadığını kontrol ediliyor için onay kutusu varsayılan yapacaktır.

<?php
    $checked = $someBoolean ? ' checked="checked"' : '';
?>
<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes"<?php echo $checked; ?> />

$someBoolean bir boolean o (örneğin bir veritabanından alınan değer) önce ya da kontrol edilip (doğru / yanlış) değer tuttuğu yerde.

: true o neden olacaksa

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" checked="checked" />

else:

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" />

Eğer onay kutusunun işaretli olduğundan emin böylece kurarım hangi nitelik demek?

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" checked="checked" />

EDIT: Ben ne yapardım, aşağıdaki gibi bir (jQuery gibi bir kütüphaneyi kullanarak) onay kutusunu tıklama olayı, bazı kod ciltlemektir:

$(document).ready(function() {
    $("#privacy_policy").click(function() {

        // block the checkbox
        $(this).attr("disabled", "disabled");
        var checked = 0;
        if($(this).is(":checked")) {
            checked = 1;
        }

        // send the checked state to PHP script
        // if the update has been successful, the script echos a '1'
        $.post('account.php', { checked: checked, function(resp) {

            // update has been successful
            if(resp == 1) {

                // unblock the checkbox, the current 
                // checked state reflects the stored value
                $(this).removeAttr("disabled");
            } else {
                alert("settings could not be updated");
            }
        });

    });
});

O özel seçenek en kutucuğu tıklandığında her zaman ayar gerçek zamanlı manipüle idare edecek. (Ben zaten, ne demek istediğini düşünüyorum). Sadece dahili $_POST['checked'] değişken üzerinde hareket etmek gerekir.

Saklanan değere (sayfa yüklendiğinde ilk kez) dayalı onay kutusunu ilk devlet kurmak, sadece kısa etiketleri kullanabilirsiniz, örneğin:

<?php
$isChecked = $_SESSION['someSetting']; // 1 or 0, for example
?>
<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" <?php if($isChecked) echo 'checked="checked"'; ?>/>

Ben size bazı açıklamalar bir veritabanında saklanan kullanıcı ayarlarını var sayıyorum. Bu MYSQL aşağıdaki yapmak olduğunu varsayarsak:

$query = "
    SELECT privacy_policy FROM user_settings WHERE user_id = $user_id
    ";
$result = mysql_query($query);
$user_settings = mysql_fetch_assoc($result);

Bu bilgiler user_settings adlı bir tablo ve zaten $ user_id biliyoruz "privacy_policy" adında bir sütun saklanır varsayar. Gizlilik politikası ayar artık $user_settings['privacy_policy'] tutulur. Ben de doğrudur bunu kontrol ve yanlış bunu kontrol istemiyorum demek istiyorum demektir bir boolean olduğunu varsayarak yaşıyorum.

Ayrıca yerine örneğin sadece değişken değiştirdikten sonra gibi, bir kullanıcı girişinden ayar almak olabilir. Bu durumda, sadece $ _POST veya $ _GET eg değişken bulmak $ _POST ['Privacy_policy'] ve yerine bu değişkeni ile devam ediyor.

Şimdi aşağıdakileri yapın:

if($user_settings['privacy_policy']) $checked = "checked='checked'"; else $checked = ''; echo "';

$ User_sesstings ['privacy_policy'] doğru ise, kontrol $ onay kutusunu geri kalanı ile birlikte set ve yankılandı olacak. Aksi takdirde, onay kutusunu niteliği olmayan yankılandı edilecek ve böylece denetlenmeyen olacak.