2010-04-10 4 views
1

두 개의 드롭 다운리스트가있는 폼이 있습니다 (A와 B라고 말하면됩니다). A에서 값을 선택하면 AJAX를 사용하여 B가 적절하게 채워집니다.AJAX/PHP로 채워진 DropDownList에서 선택한 값의 값을 사용하는 방법

동일한 페이지에서 드롭 다운 목록의 선택된 항목 값을 다른 PHP 페이지로 게시하는 버튼이 있습니다. 내가 겪고있는 문제는 B의 선택된 값이 빈/빈으로 반환된다는 것입니다.

AJAX를 사용하여 채워진 드롭 다운 목록의 선택한 값을 저장하는 방법이 있습니까? 아래

코드 : 당신의 전체 코드 다운로드를보고 싶은 경우

(기본 양식)

<form name="NewBar" method="post" onsubmit="return validateFormOnSubmit(this)" action="AssignContactDetailToBar_f.php"> 
      <tr> 
       <td width="150"><b>Bar:</b></td> 
       <td>     
        <select name = "bar" onChange="getContact('AssignContactDetailToBar_f_getContacts.php?bar='+this.value)" size = 1 style = "width:190px"> 
        <option value = "">---Select---</option> 
        <?php 
        while ($data = mysql_fetch_array($r_getBarsDetails)) 
        { 
         echo "<option value=\"".$data['bar_id']."\">".$data['bar_name']." (".$data['town_name'].")</option>"; 
        } 
        ?> 
       </td> 
      </tr> 
      <tr> 
       <td width="150"><b>Contact Person:</b></td> 
       <td>     
        <div id="persondiv"><select name = "person" size = 1 style = "width:190px"> 
        <option value = "">--Select Bar--</option> 
       </td> 
      </tr>    
      <tr> 
       <td> 
        <input name="security" type="text" size="15"> 
       </td> 
       <td> 
        <input type="submit" name="Submit" value="Submit"> 
       </td> 
      </tr> 
     </form> 

FORM은 2 드롭 다운리스트

<select name="person" size = 1 style = "width:190px"> 
<option value = "">--Select Person--</option> 
<?php 
while($data=mysql_fetch_array($result)) 
{ 
    echo "<option value=\"".$data['person_id']."\">".$data['person_name']." ".$data['person_surname']." (".$data['town_name'].")</option>";  
} ?> 

을 채 웁니다 here

답변

1

상자 B에서 이전 값을 지우고 새로운 선택 옵션을 B에 삽입하는 동안 그에 따라 옵션에 값을 삽입하십시오. JS 참고

: argstr 유 값 1로 구분 아약스 PHP 파일에서 얻을 문자열 : 옵션 1 | 값 2 : 옵션 2 및 argctrl있어 이전 박스 B 옵션

function splitstr(argstr,argctrl) 
{ 
var o; 
    var ctrl = eval(argctrl); 
    var prezar = argstr.split("|"); 
    argctrl.length = 0; 
    clearcombo(ctrl); 
    if(argstr!='') 
    { 
     for (o=0; o < prezar.length; o++) 
     { 
      splitarr = prezar[o].split(":"); 

      ctrl[ctrl.length] = new Option(splitarr[1], splitarr[0]); 

     } 
    } 
} 


function clearcombo(argctrl) 
{ 
    for (var i=argctrl.length-1; i>=0; i--) 
    { 
    argctrl[i] = null; 
    } 
} 
+0

감사 닉,하지만 난 당신의 대답을 이해할 수 없다 ..... 원한다면 [email protected]으로 나를 우편으로 보낼 수 있습니다. 감사합니다 – mouthpiec

+0

hmmmmm, 내가 UR 파일을 보았지만 옵션 값을 얻는 내 방식이 다르고, 모든 것을 반향하는 대신 value와 같은 특정 방식으로 옵션과 값을 사용할 수 있습니다 : option | value : option U는 responseText로 가져옵니다 그런 다음이 함수를 호출 할 수 있습니다 : splitstr (responseText, "document.NewBar.persondiv.options"); – nik

+0

감사합니다 nik, 나는 그것을하는 방법을 알아 내려고 노력할 것입니다. 하지만 동적 목록을 별도의 PHP 페이지에 있기 때문에 그 값을 잃어버린 것 같아요 : ( – mouthpiec

관련 문제