09/10/2018, 23:33

Nhận nhiều dữ liệu trong thẻ <select><option>

trong 1 lần đi vào thế kẹt, bắt buộc mình phải lập trình để nhận được nhiều dữ liệu trong tag <select> <option> nhưng không biết phải làm thế nào. sau 1h vò đầu, mình cũng có 1 cách hok biết có phải là tối ưu chưa, muốn được góp ý kiến.

mình có *.html như sau:

<form method="POST" action="link">
<select size="1" name="nameselect">
<option selected value="data1<>data2">data</option>
</select>
<input type="submit" name="ok" value="button">
</form>

và mình có file *.php xử lý nhận dữ liệu:

if(isset($_POST['ok'])) {
$s = $_POST['ameselect'];
$as= explode("<>",$s);
}
print $as[0].$as[1];

thế là mình giải quyết được bài toán select xuất nhiều dữ liệu. mong các bạn cho ý kiến về cách giải quyết này. có chỗ nào hợp lý và bất hợp lý.

cảm ơn các bạn đã quan tâm !
mrsinguyenus viết 01:46 ngày 10/10/2018
Trùi có kiểu select này à?
Vậy nếu là select về country thì 230 country nó dài tới đâu?
Bạn nên chọn liểu cho select 1 phần tử hay select nhiều phần tử, rồi đưa vào.
sam2pro viết 01:46 ngày 10/10/2018
thì cũng tùy trường hợp chứ, mình đưa lên chỉ có ý hỏi? ngoài cách này. còn có cách nào khác chỉ cần 1 select mà có thể nhận về nhiều hơn 2 giá trị trong 1 item của select hay không ?.ai có sáng kiến xin góp ý nhé.
sub viết 01:46 ngày 10/10/2018
explode chuỗi là việc bình thường, và làm như vậy là bình thường, nhưng việc lấy nhiều giá trị của 1 cái select là bất thường, trên đời làm gì có việc nào phải giải quyết như thế, cái này coi như bài tập coding!
cái nick đó viết 01:34 ngày 10/10/2018
Em nghĩ thường làm thế này:
Code:
<select name="options[]" size="5" multiple="true">
<option value="value1">text1</option>
<option value="value2">text2</option>
<option value="value3">text3</option>
<option value="value4">text4</option>
<option value="value...">text...</option>
</select>
người ta sẽ có thể sử dụng phím Shift/Ctrl kết hợp với chuột để chọn.

Muốn lấy qua PHP thì:

PHP Code:
$options $_POST***91;'options'***93;;

// $options là một array
foreach ($options as $option) {
   
// handle nó

Không biết đúng ý bác không
Bài liên quan
0