2012-02-21 2 views
0

(이 프레임 페이지 : topFrame 및 botFrame) 드롭 다운 목록에서 내 PHP 페이지 dc-test.php에 포커스를 설정할 수 없습니다. 드롭 다운 목록과 종속됩니다. 이러한 드롭 다운 목록 값은 테이블에서 채워집니다. 수 없습니다 첫 번째 드롭 다운 및 나중에 두 번째 종속 드롭 다운 목록에 대한 다시로드 한 후에 포커스를 설정하십시오. 내 코드가 아래 참조하십시오, 당신의 도움이 필요해! 죄송합니다이 포럼에서이 질문을 반복하는 경우, 나는 옳은 대답을 찾을 수 없기 때문에.자바 스크립트, PHP를 사용하여 드롭 다운 목록에 포커스를 설정하는 방법

function firstfield() 
{ 
document.topFrame.cat.focus(); 
} 

대신이 작업을 수행 :

echo " <td width='27%'><select name='cat' id='cat' onchange=\"reload(this.form); showUser(this.value);\"> 

변경 firstfield에 :

하는 양식 필드에게 ID를 부여

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

    <html> 
    <head> 
    <SCRIPT language=JavaScript> 
    function reload(form) 
    { 
    var val=form.cat.options[form.cat.options.selectedIndex].value; 
    self.location='dc-test.php?cat=' + val ; 
    } 

    function firstfield() 
    { 
    document.topFrame.cat.focus(); 
    } 
    </script> 
    </head> 

    <body onLoad="firstfield();"> 

    <?php 
    $dbservertype='mysql'; 
    $servername='localhost'; 
    $dbusername='aaa'; 
    $dbpassword='[email protected]'; 
    $dbname='test'; 

    connecttodb($servername,$dbname,$dbusername,$dbpassword); 
    function connecttodb($servername,$dbname,$dbuser,$dbpassword) 
    { 
    global $link; 
    $link=mysql_connect ("$servername","$dbuser","$dbpassword"); 
    if(!$link){die("Could not connect to MySQL");} 
    mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error()); 
    } 
    // End of DB connection 

    @$cat=$_GET['cat']; 
    if(strlen($cat) > 0 and !is_numeric($cat)){ 
    echo "Data Error"; 
    exit; 
    } 


    $quer2=mysql_query("SELECT DISTINCT Ac_desc, Ac_code FROM ACMAST order by Ac_desc"); 


    /////// Second drop down list we will check if category is selected else we will display all the subcategory///// 
    if(isset($cat) and strlen($cat) > 0){ 
    $quer=mysql_query("SELECT DISTINCT Add1 FROM ACMAST where Ac_code=$cat order by Add1"); 
    } 

    echo "<form name='f1'>"; 
    echo "<table width='100%' height='39' border='0' cellpadding='2' cellspacing='0'>"; 
    echo " <tr>"; 
    echo " <td width='12%'>.</td>"; 
    echo " <td width='7%'><span class='sty1'> Customer</span></td>"; 
    echo " <td width='27%'><select name='cat' onchange=\"reload(this.form);  showUser(this.value);\"> 
    <option value=''>Select Name</option>"; 
    while($noticia2 = mysql_fetch_array($quer2)) { 
    if($noticia2['Ac_code'][email protected]$cat){echo "<option selected value='$noticia2[Ac_code]'>$noticia2[Ac_desc]</option>"."<BR>";} 
    else{echo "<option value='$noticia2[Ac_code]'>$noticia2[Ac_desc]</option>";} 
    } 
    echo "</select>"; 

    echo "</td>"; 
    echo " <td width='6%'><span class='sty1'>Address</span></td>"; 
    echo " <td width='48%'> </span><select name='subcat'>"; 
    while($noticia = mysql_fetch_array($quer)) { 
    echo "<option value='$noticia[Add1]'>$noticia[Add1]</option>"; 
    } 
    echo "</select>"; 
    echo "</td>"; 
    echo " </tr>"; 
    echo "</table>"; 
    ?> 
    </body>   
    </html> 
+0

왜 궁금한가요? 두 가지 종류가 있습니까? – YuS

+0

정말 당신이 요구하는 것을 얻지 못했습니다. 두 드롭 다운 모두에 집중 하시겠습니까? 하나의 요소에만 집중할 수 있습니다. 문제는 무엇이며 달성하고자하는 것은 무엇입니까? – YuS

+0

내가 원하는 것은 간단합니다. 처음에 2 개의 드롭 다운 목록이 표시되면 포커스는 첫 번째 드롭 다운 목록에 설정해야하고 첫 번째 드롭 다운에서 항목을 선택하면 페이지가 다시로드되고 두 번째 드롭 다운 목록에 값이 채워지며 이에 대한 포커스가 설정되어야합니다. – user1114409

답변

0

은 "topFrame는"완전히 여기 범위를 벗어 이 :

function firstfield() 
{ 
document.getElementById('cat').focus(); 
} 

그리고 관련없는 쪽지 : 더 쉽게 jQuery를 사용하십시오. :)

+0

에릭, 심지어이 작동하지 않습니다, 나는 파이어 폭스 9.01을 사용하고 있습니다, 브라우저 문제입니다, 그런데 어떻게 우리가 jQuery를 사용하여 동일한 작업을 수행 할 수 있습니까? – user1114409

+0

폼 필드가 아닌 폼에 포커스를 설정했습니다. 그것은 위의 대답에서 지금은 작품을 확인했습니다 해결되었습니다. jQuery에 관해서는 http://jquery.com/을 살펴 보겠습니다. –

+0

에릭,이 작품은 고맙습니다! 또한 jquery를 시도해 보았습니다. jquery는 훌륭한 제어 기능을 제공하는 훨씬 좋은 옵션입니다. 감사합니다. 유일한 문제는 풀다운 메뉴를 드롭 다운으로 설정하지 않았다는 것입니다. 누락 된 부분이 있습니다. – user1114409

관련 문제