2013-02-07 51 views
7

Tôi đang cố gắng chọn hộp kiểm theo mặc định, nhưng mọi thứ tôi đã thử dường như không hoạt động. Tôi không biết liệu nó có liên quan đến PHP có trong mã không.Mặc định kiểm tra hộp kiểm html

function show_subscription_checkbox ($id='0') { 
    global $sg_subscribe; 
    sg_subscribe_start(); 

    if ($sg_subscribe->checkbox_shown) return $id; 
    if (!$email = $sg_subscribe->current_viewer_subscription_status()) : 
     $checked_status = (!empty($_COOKIE['subscribe_checkbox_'.COOKIEHASH]) && 'checked' == $_COOKIE['subscribe_checkbox_'.COOKIEHASH]) ? true : false; 
    ?> 
<p <?php if ($sg_subscribe->clear_both) echo 'style="clear: both;" '; ?>class="subscribe-to-comments"> 
     <input type="checkbox" name="subscribe" id="subscribe" value="subscribe" style="width: auto;" <?php if ($checked_status) echo 'checked="checked" '; ?>/> 

     <label for="subscribe"><?php echo $sg_subscribe->not_subscribed_text; ?></label> 
     </p> 

Đây là plugin wordpress cho phép bạn đăng ký nhận xét trên blog.

Tôi đã thử

bang tác giả
echo 'checked=\"checked\" '; 
echo 'checked="checked" ' ; 
echo 'checked> '; 

Plugin mà bạn sử dụng để có thể để mặc định kiểm tra hộp kiểm nhưng không được nữa.

Trả lời

0

Sự cố không có trong đánh dấu HTML được tạo; echo 'checked="checked" ', như trong câu hỏi, hoạt động tốt, và do đó sẽ đơn giản hơn echo 'checked'.

Sự cố xảy ra với điều kiện $checked_status. Bạn đang thử nghiệm một biến không xác định, theo như mã được đăng được xem xét.

+0

Tôi đoán tôi nên đăng mã ở trên những gì tôi đăng lần đầu. Tôi đã cập nhật bài đăng của mình với nhiều mã hơn. – myladeybugg

+0

Bây giờ bạn đã thêm mã để kiểm tra xem cookie có được đặt hay không.Không có chỉ dẫn về nơi nó thực sự có thể được thiết lập. –

+0

Hmm. Điều này là nhận được một chút trên đầu của tôi. Theo như tôi có thể nói đó là mã duy nhất được kết hợp với hộp kiểm. Có cách nào để chia sẻ toàn bộ tập tin không? Bên cạnh việc sao chép và dán tất cả mã? Tôi có thể đã để lại một cái gì đó. – myladeybugg

4

Trong HTML, nếu bạn muốn hộp kiểm được chọn theo mặc định, hãy xem phần sau;

<input type="checkbox" name="name1" value="uc"> This checkbox is unchecked <br> 
<input type="checkbox" name="name2" value="c" checked> This checkbox is checked<br> 

Vì vậy, bạn có thể xem xét thay đổi

<?php if ($checked_status) echo 'checked="checked" '; ?> 

để

<?php if ($checked_status) echo 'checked'; ?> 
+0

Cảm ơn sự giúp đỡ, nhưng điều đó cũng không hiệu quả. – myladeybugg

+0

Bạn có chắc chắn rằng '$ checked_status = (! Empty ($ _ COOKIE ['subscription_checkbox _'. COOKIEHASH]) && 'checked' == $ _COOKIE ['subscription_checkbox _'. COOKIEHASH])? true: false; 'dòng thực hiện trước khi html được phân tích cú pháp? – Alpay

+0

là w3c có tuân thủ không? không chắc chắn –

26

Vì đây được hiển thị trong google cho "mặc định kiểm tra hộp kiểm", tôi figured tôi muốn trả lời nó. Alpay đã đúng: Các cách chính xác để đảm bảo rằng một hộp kiểm được kiểm tra theo mặc định là như vậy (tiếp theo là một ví dụ về một mà không được kiểm tra):

<input type="checkbox" name="vehicle" value="Car" checked> I have a car  
<input type="checkbox" name="vehicle" value="Bike"> I have a bike 

trả lời được tìm thấy trên w3schools. Tác giả của câu hỏi ban đầu đã gặp sự cố với mã PHP của anh ta, điều này hoàn toàn không liên quan đến tiêu đề câu hỏi.

0

Tôi gặp vấn đề tương tự. Tôi đã tìm ra rằng tôi đã cố gắng để đưa các hộp kiểm vào một bảng nhưng bỏ ra và.

không kiểm tra:

if(!$stump){echo '<input type="checkbox" name="stump" value="stump" checked="checked"><b> Stump Job!</b>';} 

kiểm tra:

if(!$stump){echo '<td><input type="checkbox" name="stump" value="stump" checked="checked"><b> Stump Job!</b></td>';} 
0

Trong PHP thường xuyên, bạn có thể sử dụng để "cứu" tình trạng kiểm tra sau khi nó được gửi.

<form name="checkbox" method="post" action="#" > 
<input type="checkbox" name="checkbox1" value="Bike" <?php if ($_POST['checkbox1']=="Bike") echo "checked";?>>I have a bike 
<input type="checkbox" name="checkbox2" value="Car" <?php if ($_POST['checkbox2']=="Car") echo "checked";?>>I have a car 
<input type="submit" name="submit" value="Display this Data" /> 

nếu bạn muốn sử dụng dữ liệu này cho cái gì khác sau khi gửi, chỉ cần thêm:

<?php 
    if(isset($_POST['checkbox1']) OR isset($_POST['checkbox2'])) 
    { 
    echo "for 1 : ".$_POST['checkbox1']."for 2: ".$_POST['checkbox2']; 
    } 
?> 

nếu bạn muốn xóa hình thức (về cơ bản rõ ràng tất cả các dữ liệu bưu điện) bạn có thể thêm:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
<input type="submit" name="Clear all form data" value= "Clear this form"> 
</form> 
Các vấn đề liên quan