2013-07-19 3 views
0

오른쪽 목록 상자에서 선택한 값을 출력하고 싶습니다. 그러나 나는 선택된 값의 값을 얻는데 성공하지 못했다. js의 제출 기능에서 오류가 리턴됩니다. 아무도 왜 돌아 오지 말해 줄 수 :이중 목록 상자에서 선택된 값 얻기 PHP

An object doesn't support this property 

제출 기능에? 어떻게 값을 얻을 수 있습니다 .. 내가 아약스를 사용하거나 그냥 PHP에서 값을 반환 할 것인가? 여기

<form name="frmListSubmit" method="post" id="myform" onsubmit="return submit()"> 

<table cellpadding="2" cellspacing="0" border="0" id="tblMain" class="edit"> 
    <tr valign="top"> 
     <td>&nbsp;&nbsp;&nbsp;</td> 
     <td> 
     <SELECT id="s" size="10" name="source" multiple> 
     <?php 
     while($row = mysql_fetch_assoc($getEmployeeList)) 
     { 
     ?> 
      <option name="list" value="<?php echo $row['id'];?>"><?php echo $row['name']; ?></option> 
     <?php 
     } 
     ?> 

     </td> 
     </SELECT> 

     <td valign="center"> 
      <a href="#" onclick="listbox_moveacross('s', 'd')" style="color:#FFF">&gt;&gt;</a> 
     <a href="#" onclick="listbox_moveacross('d', 's')" style="color:#FFF">&lt;&lt;</a> 
     </td> 
     <td> 
     <SELECT id="d" size="10" name="destination" multiple> 
      <option name="list" value="">&nbsp;</option> 
     </SELECT> 
    <input type="submit" name="submit" value="submit" /> 
    </td> 
     </tr> 
</table> 

</form> 

는 자바 스크립트 코드 :

function listbox_moveacross(sourceID,destID) 
{ 
var src=document.getElementById(sourceID); 
var dest=document.getElementById(destID); 
for(var count=0;count<src.options.length;count++) 
{ 
    if(src.options[count].selected==true) 
    { 
     var option=src.options[count]; 
     var newOption=document.createElement("option"); 
     newOption.value=option.value; 
     newOption.text=option.text; 
     newOption.selected=true; 
     try 
     { 
      dest.add(newOption,null);src.remove(count,null); 
     } 
     catch(error) 
     { 
      dest.add(newOption);src.remove(count); 
     } 

     count--; 
     } 
    } 
} 

function listbox_selectall(listID,isSelect) 
{ 
var listbox=document.getElementById(listID); 
for(var count=0;count<listbox.options.length;count++) 
{ 
    istbox.options[count].selected=isSelect; 
} 
} 

function submit() 
{ 
    listbox_selectall('d', true); 
    return true; 
} 

내가 PHP에서 이런 일을하고 제출 후 하나 개의 ID를 반환합니다. "대상"에서 단 1 값을 PHP에 제출되어,

listbox.options[count].selected=isSelect; 

당신은 말했다 : 아마, 당신이 말하고 싶었다

function listbox_selectall(listID,isSelect) 
{ 
    var listbox=document.getElementById(listID); 
    for(var count=0;count<listbox.options.length;count++) 
    { 
     istbox.options[count].selected=isSelect;//<-- ? 
    } 
} 

:

if(isset($_POST['submit'])) 
{ 
    echo $_POST['destination']; 
} 

답변

0

이 이상한 코드입니다. 여러 값이 제출 될 수 있도록하기 위해, <select>-s의 이름에 [] 추가 :

또한
<SELECT id="s" size="10" name="source[]" multiple> 

<SELECT id="d" size="10" name="destination[]" multiple> 

는 옵션 name 속성을 사용할 필요가 없다. 어디서나 사용하지 마십시오.

+0

오타로 인해 미안합니다. 이미 변경되었지만 제출 한 후에는 값을 반환하지 않습니다. – mmr

+0

@ rmm04 할 수 있습니까? var_dump ($ _ REQUEST); PHP 코드의 시작 부분에? 아무 것도 제출되지 않으면 볼 수 있습니다. – user4035

+0

@ rmm04 나에게 잘못된 HTML 코드를 제공하고 있습니다. 질문에 "id"입력이 없지만 var_dump 결과에는 id가 있습니다. var_dump의 "destination"값은 "A011479"이고 HTML에서는 빈 값이 하나뿐입니다. 질문을 편집하고 사용중인 실제 코드를 보여주십시오. 게다가 난 아직도 이해가 안 돼, 작동하지 않습니다 : 자바 스크립트 또는 데이터가 양식에서 PHP 스크립트로 전송되지 않습니다? – user4035

관련 문제