Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trong trang chỉnh sửa, hiển thị nút radio đã chọn

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xây dựng ứng dụng Ruby on Rails với db Mysql hiện có

  2. Lấy id chèn cuối cùng cho mysql sau khi Chèn

  3. Làm cách nào để kiểm tra các câu lệnh SQL (của Tôi) về tính đúng cú pháp

  4. # 1075 - Định nghĩa bảng không chính xác; chỉ có thể có một cột tự động và nó phải được xác định là một khóa

  5. Làm thế nào để hợp nhất hàng bảng với mảng PHP?