2012-02-09 2 views
1

드롭 다운 목록이있는 html 양식을 만들었습니다.PHP에서 드롭 다운에서 값과 ID를 얻는 방법?

이 드롭 다운 목록은 데이터베이스에서 채워집니다.

<select name="classes"> 
<?php 
foreach() { 
?> 
<option value="<?php echo $id ?>"><?php echo $name ?></option> 
<?php 
} 
?> 
</select> 

이제 $ id와 $ name을 모두 가져오고 싶습니다. 내가 어떻게 할까?

나는이

echo $_POST['classes']; 

을 시도했지만 그것은 단지 선택 항목의 $ id를 표시합니다. 그리고 나는 $ id와 $ name을 둘 다 원합니다.

+0

만 ID 폭발이

<option value="<?php echo $id."_".$name;?>"><?php echo $name?></option> 

같은 데이터를 게시에 넣어 두 선택한 옵션이 POST됩니다. 요점은 ID가 이름에 대한 별칭으로 사용되므로 ID가 이름을 알기에 충분해야 함을 알 수 있습니다. – xbonez

+1

둘 다 필요합니다. 자바 스크립트를 사용하여 게시물 요청을 변경해야합니다. – JRL

+0

하지만 둘 다 필요합니다. ID와 이름을 모두 얻는 방법은 무엇입니까? PHP에서 가능합니까? – Ahmad

답변

4

당신은 할 수 없습니다에서 이름을 폭발. 하나의 가능성은 value 속성 내에서 모두 정보를 정기적으로 배치 한 다음 PHP를 다시로 구분 (구분 기호 사용) 할 것입니다 : PHP에서

<option value="<?php echo $id.'|'.$name; ?>"><?php echo $name ?></option> 

:

$datas = explode('|',$_POST['classes']); 
$id = $datas[0]; 
$name = $datas[1]; 

를하지만 그 방법은 시스템이 아니다 그럴 수 있습니다. 일반적으로 $ 이름은 사용자를위한 "친숙한"정보로만 사용됩니다. 값이 INT가 될 수도 있고 사용자가 int가 참조하는 것을 이해하지 못하기 때문에 선택할 수 있도록 단어 설명을 제공합니다. 옵션 : 그러나 당신이 오직 중요하게 생각하는 것은 실제로 그 값입니다. 예를 들어 데이터베이스 검색을 통해 항상 함께 제공되는 설명을 다시 얻을 수 있습니다.

0

보내는 양식은 선택 필드에 '값'만 보내는 것을 의미합니다 (옵션에서 '이름'을 레이블로만 처리). 양식 제출을 처리하는 동안 'id'가 있으면 데이터베이스에서 'name'을 가져올 수 있습니다. 이드

1

APPEND 이름과 값로 전달 ,, 그리고 다른 쪽 끝

1

그 양식을 제출할 때 가치 만 이월 될 것입니다. 값이 없으면 내부 HTML이 값이됩니다.

는 내가 할 줄 것은 : 경우

<select name="classes"> 
<?php 
foreach($classes as $id => $name) //i'm guessing here, is this what you meant? 
{ ?> 
<option value="<?php echo $id.'|'.$name ?>"><?php echo $name ?></option> 
<?php } ?> 
</select> 

당신은 익숙하지 않은, 기간은 연결 연산자입니다. 문자열의 조각을위한 접착제로 생각하십시오. 그래서 "pipe"의 왼쪽에 $ id를 붙이고 그 끝에 $ name을 붙입니다. 그런 다음 처리기에서 split 또는 explode를 사용하여 파이프의 두 값을 분리합니다.

사실, 조금 더 다르게하고, 더 많은 것을 반복하고 php/html을 줄이거 나 늘리지는 않지만 최대한 코드를 그대로 두려고했습니다. 당신이 원하는

+0

너무 느립니다. 누군가 나처럼 거의 같은 대답을 게시했습니다. :-) – TecBrat

1

이며, 옵션 값을 저장하는 동안 이름 때문에, 그냥 당신이 모두가 얻을 것이다 값과 이름의

관련 문제