2012-01-20 3 views
0

PHP를 사용하여 특정 GET에 따라 Javascript가 다중 선택 상자에서 값을 선택하도록하려고합니다. 그것은 첫째 ID를 선택복수 선택 상자에서 각 자식을 선택하도록 Javascript를 가져 오려고 시도했습니다.

if (isset($_GET["parent"]) && ($_GET['parent'] !== '')) { 
    $parent = $_GET['parent']; 

    echo '<script type=text/javascript> 
     document.getElementById("locpick").value="'.stripslashes($parent).'"; 
      </script>'; 


$reschild = mysql_query("SELECT child_id from loc_child_xref where loc_id='".$locrow['loc_id']."'"); 
while ($childrow = mysql_fetch_array($reschild)) { 
    $childloc = mysql_query("SELECT loc_id, loc_desc from location where loc_id='".$childrow['child_id']."'"); 
    while ($childlocrow = mysql_fetch_array($childloc)) { 
     echo '<script type="text/javascript> 
      var pl = document.getElementById("child"); 
     for(var i=0; i<pl.options.length;i++) { 
     if(pl.options[i].value == "' . stripslashes($childlocrow['loc_id']).'") { 
      pl.options[i].selected = true; 
      } 
      } 
      </script>'; 
      } 

} 
} 

하지만 두 번째의 모든 아이를 선택하지 않습니다

여기 내 코드입니다.

+2

DOM에 자바의 무작위로 구성된 작은 섹션을 추가하는 대신 HTML을 생성 할 때'

+0

해결되었습니다. where loc_id = ' ". $ locrow ['child_id ']."'etc 등 $ 부모가되어야 함 –

답변

1

수정 됨.

loc_id='".$locrow['child_id']."' 

등 등이,

$parent 
0

을 있어야 할 곳에 당신이 그것을 고정 기뻐하지만 나는 @DaveRandom에 동의 않습니다. 결과 코드의 각 $childlocrow에 대해 코드가 새로운 <script>을 출력합니다. 더 깨끗한 해결책은 PHP를 사용하여 <options>selected="selected"을 추가하는 것입니다. 그게 가능하지 않다면, echo을 JavaScript 배열로 보내고 그 검사를 수행해야합니다. 그런 식으로 하나의 <script> 블록 만 있으면됩니다.

+0

으흠, 지금이 사실을 잘 알고 미래를 염두에두면 좋을 것 같습니다. 우리는 지금 이것을위한 충분한 개발 시간을 가지고 있습니다. –

관련 문제