2011-07-12 7 views
7
<select id="animal" name="animal">      
<option value="0">--Select Animal--</option> 
<option value="1">Cat</option> 
<option value="2">Dog</option> 
<option value="3">Cow</option> 
</select> 

if($_POST['submit']) 
{ 
$animal=$_POST['animal']; 
} 

Tôi có một menu thả xuống như thế này. Những gì tôi muốn, tôi muốn nhận được giá trị và văn bản được chọn trong nút gửi bằng cách sử dụng PHP. Ý tôi là nếu nó được chọn đầu tiên. Tôi muốn nhận cả hai và CatGiá trị thả xuống của PHP nhận được và văn bản

Xin vui lòng trợ giúp. cảm ơn bạn.

Trả lời

11
$animals = array('--Select Animal--', 'Cat', 'Dog', 'Cow'); 
$selected_key = $_POST['animal']; 
$selected_val = $animals[$_POST['animal']]; 

Sử dụng danh sách $ animals để tạo danh sách thả xuống; bây giờ bạn có thể nhận được khóa & giá trị của khóa đó.

+0

Thực tế trong trường hợp này, trình đơn thả xuống được tạo bởi cơ sở dữ liệu. –

+1

Việc tạo ra từ một cơ sở dữ liệu không có sự khác biệt. Bạn có thể tạo một mảng để sử dụng cho danh sách thả xuống của bạn bằng cách sử dụng các giá trị bạn lấy từ cơ sở dữ liệu. Do đó, bạn có một mảng phía máy chủ để sử dụng để tạo ra trình đơn thả xuống, bạn có thể nhận được giá trị POSTED và ánh xạ nó tới khóa trong mảng ánh xạ trở lại id cơ sở dữ liệu. – john

15

Có lý do nào khiến bạn không sử dụng điều này không?

<select id="animal" name="animal">      
    <option value="0">--Select Animal--</option> 
    <option value="Cat">Cat</option> 
    <option value="Dog">Dog</option> 
    <option value="Cow">Cow</option> 
</select> 

if($_POST['submit'] && $_POST['submit'] != 0) 
{ 
    $animal=$_POST['animal']; 
} 
+0

cảm ơn bạn, chỉ muốn tôi cần :) –

1

Bạn sẽ phải lưu mối quan hệ ở phía máy chủ. Giá trị là phần duy nhất được truyền khi biểu mẫu được đăng. Bạn có thể làm một cái gì đó khó chịu như ...

< tùy chọn value = "2 | Dog"> Chó </option>

Sau đó chia kết quả ngoài nếu bạn thực sự muốn, nhưng đó là một hack xấu xí và một sự lãng phí băng thông giả định các con số thật sự độc đáo và có mối quan hệ 1-1 với văn bản.

Cách tốt nhất là tạo mảng và lặp lại mảng để tạo HTML. Khi biểu mẫu được đăng, bạn có thể sử dụng giá trị để tra cứu văn bản trong cùng một mảng đó.

+0

cảm ơn câu trả lời này. Nhưng ở đây tôi chỉ đăng một mẫu thôi. Thực ra trong trường hợp của tôi, tôi đã tạo ra trình đơn thả xuống này bằng cách sử dụng DB. Và một trường hợp khác là nếu tôi không chèn văn bản này vào bảng cụ thể đó, tôi cần phải tham gia 3 bảng khi tôi hiển thị dữ liệu. –