2009-08-26 30 views
10

Có cách nào để đặt mục đã chọn trong hộp thả xuống sử dụng mã 'loại' sau không?Làm cách nào để đặt mục đã chọn trong hộp thả xuống

<select selected="<?php print($row[month]); ?>"><option value="Janurary">January</option><option value="February">February</option><option value="March">March</option><option value="April">April</option></select> 

Cơ sở dữ liệu giữ tháng .. và tôi muốn cho phép trên trang chỉnh sửa, chọn tháng này .. nhưng phải được điền sẵn với cài đặt hiện tại của chúng?

Trả lời

45

Bạn cần phải thiết lập các thuộc tính lựa chọn của thẻ lựa chọn đúng:

<option value="January" selected="selected">January</option> 

PHP của bạn sẽ giống như thế này:

<option value="January"<?=$row['month'] == 'January' ? ' selected="selected"' : '';?>>January</option> 

tôi thường thấy nó gọn gàng để tạo ra một mảng các giá trị và lặp lại thông tin đó để tạo danh sách thả xuống.

+0

Erk xin lỗi, không thấy nhất của bạn ly nhận xét giống hệt nhau trước khi đăng bài của tôi. Tôi sẽ upvote của bạn nhưng để nó cho người hỏi để chọn một người chiến thắng. Btw, thẻ PHP mở của bạn có lỗi đánh máy không? hoặc là '

+0

Bạn nhận được dấu tích :) Làm cho tôi cảm thấy haha ​​hơn! – tarnfeld

+3
13

Bạn đánh dấu mục đã chọn trên thẻ <option>, không phải thẻ <select>.

Vì vậy, mã của bạn nên đọc một cái gì đó như thế này:

<select> 
    <option value="January"<?php if ($row[month] == 'January') echo ' selected="selected"'; ?>>January</option> 
    <option value="February"<?php if ($row[month] == 'February') echo ' selected="selected"'; ?>>February</option> 
    ... 
    ... 
    <option value="December"<?php if ($row[month] == 'December') echo ' selected="selected"'; ?>>December</option> 
</select> 

Bạn có thể làm điều này ít lặp đi lặp lại bằng cách đặt tất cả các tên tháng trong một mảng và sử dụng một cơ sở foreach qua chúng.

+0

hoặc, như thế này: http://stackoverflow.com/ a) 3747240/2615737 –

4

Bạn có thể sử dụng phương pháp này nếu bạn sử dụng một cơ sở dữ liệu MySQL:

include('sql_connect.php'); 
$result = mysql_query("SELECT * FROM users WHERE `id`!='".$user_id."'"); 
while ($row = mysql_fetch_array($result)) 
{ 
    if ($_GET['to'] == $row['id']) 
    { 
     $selected = 'selected="selected"'; 
    } 
    else 
    { 
    $selected = ''; 
    } 
    echo('<option value="'.$row['id'].' '.$selected.'">'.$row['username'].' ('.$row['fname'].' '.substr($row['lname'],0,1).'.)</option>'); 
} 
mysql_close($con); 

Nó sẽ so sánh nếu người dùng trong $ _GET [ 'để'] cũng giống như $ row [ 'id'] trong bảng , nếu có, $ đã chọn sẽ được tạo. Đây là một hệ thống tin nhắn riêng ...

1

Cách đơn giản

<select class ="dropdownstyle" name="category" selected="<?php print($messageeditdetails[0]['category_id']); ?>"> 

<option value=""><?php echo "Select"; ?></option> 

<?php foreach ($dropdowndetails as $dropdowndetails) { ?> 
    <option <?php if($messageeditdetails[0]['category_id'] == $dropdowndetails['id']) { ?> selected="<?php echo $dropdowndetails['id']; ?>" <?php } ?> value="<?php echo $dropdowndetails['id']; ?>"><?php echo $dropdowndetails['category_name']; ?></option> 
<?php } ?> 
</select> 
3

Đơn giản và dễ hiểu ví dụ bằng cách sử dụng các nhà khai thác ternary để thiết lập giá trị được chọn trong php

<?php $plan = array('1' => 'Green','2'=>'Red'); ?> 
<select class="form-control" title="Choose Plan"> 
<?php foreach ($plan as $id=> $value) { ?> 
    <option value="<?php echo $id;?>" <?php echo ($id== '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option> 
<?php } ?> 
</select> 
0

Đây là giải pháp mà tôi đã đưa ra ...

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <select name="select_month"> 
     <?php 
      if (isset($_POST['select_month'])) { 
       if($_POST["select_month"] == "January"){ 
        echo '<option value="January" selected="selected">January</option><option value="February">February</option>'; 
       } 
       elseif($_POST["select_month"] == "February"){ 
        echo '<option value="January">January</option><option value="February" selected="selected">February</option>'; 
       } 
      } 
      else{ 
       echo '<option value="January">January</option><option value="February">February</option>'; 
      } 
     ?> 
    </select> 
    <input name="submit_button" type="submit" value="Search Month"> 
</form> 
0

Của nó quá cũ nhưng tôi cũng phải thêm theo cách của mình :) beca sử dụng nó là chung chung và hữu ích đặc biệt là khi bạn đang sử dụng các giá trị thả xuống tĩnh.

function selectdCheck($value1,$value2) 
    { 
    if ($value1 == $value2) 
    { 
     echo 'selected="selected"'; 
    } else 
    { 
     echo ''; 
    } 
    return; 
    } 

và bạn tùy chọn kéo xuống, bạn có thể sử dụng chức năng này như thế này và bạn có thể sử dụng như nhiều như bạn có thể bởi vì nó phù hợp với tất cả các hộp chọn của bạn/Dropdowns

<option <?php selectdCheck($row[month],january); ?> value="january">january</option> 

:) Tôi hy vọng chức năng này giúp đỡ người khác

-3

bạn có thể thử này sau khi chọn thẻ:

<option value="yes" selected>yes</option> 
<option value="no">no</option> 
+0

Tôi sẽ xem xét sửa đổi câu trả lời này. Câu trả lời của bạn không chạm vào php. –

Các vấn đề liên quan