Một cái gì đó như thế này
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
($subscribedrips == 'Yes' ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
($subscribedrips == 'No' ? 'CHECKED' : ''));
làm. Nó sử dụng toán tử bậc ba để chèn 'CHECKED'
hoặc một chuỗi trống vào thẻ đầu vào, dựa trên giá trị của $subscribedrips
.
Bạn cũng có thể làm theo cách dài dòng hơn, chẳng hạn với switch:
$sel_y = '';
$sel_n = '';
switch($subscribedrips)
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
Sở thích cá nhân thực sự.
Đoạn mã được cập nhật 1
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'Yes') ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'No') ? 'CHECKED' : ''));
Đoạn mã được cập nhật 2
$sel_y = '';
$sel_n = '';
if(array_key_exists('subscribedrips', $row))
{
switch($row['subscribedrips'])
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
Về câu hỏi cuối cùng của bạn, sự khác biệt giữa các cách tiếp cận của chúng tôi khá đơn giản, nhưng một lần nữa (ahh!) Đó là lựa chọn phong cách, cả hai đều hoàn thành cùng một mục tiêu, cả hai phương pháp đều được sử dụng trong mã PHP "sản xuất".
Ví dụ của tôi xây dựng toàn bộ thẻ đầu vào trong PHP và in nó. Phương pháp tiếp cận của Valentinas kéo văn bản tĩnh ra khỏi các chuỗi PHP và đưa trực tiếp vào HTML.
Ví dụ:tất cả các dòng sau sẽ dẫn đến cùng một kết quả:
<?php printf("<strong>%s</strong>", $some_string); ?>
<?php echo "<strong>$some_string</strong>"; ?>
<?php echo "<strong>".$some_string."</strong>"; ?>
<strong><?php echo $some_string; ?></strong>
Tôi nghi ngờ có bất kỳ sự khác biệt đáng kể nào về hiệu suất giữa hai phương pháp, nhưng có một điểm khác biệt về mặt thẩm mỹ mà tôi sẽ nhấn mạnh.
-
Đánh dấu cú pháp - Nếu bạn sử dụng trình chỉnh sửa có đánh dấu cú pháp, cách tiếp cận của valentinas sẽ cho phép trình đánh dấu cú pháp đánh dấu phù hợp
input
và các thuộc tính của nó. Sử dụng cách tiếp cận của tôi, toàn bộ chuỗi sẽ được đánh dấu giống nhau. Đây là ảnh chụp màn hình hiển thị cách notepad ++ làm nổi bật hai phương pháp.Như bạn có thể thấy phương pháp tiếp cận của valentinas dẫn đến màn hình hiển thị nhiều màu sắc hơn, có thể giúp xác định và theo dõi lỗi.
Có một số khác biệt nhỏ khi nói đến cách mã của bạn phải được định dạng nếu bạn muốn in có điều kiện toàn bộ thẻ, nhưng chúng không thực sự đáng nói - theo ý kiến của tôi, lớn nhất là tô sáng cú pháp.