2012-02-21 5 views
0

私は私のPHPページのDC-test.phpをにフォーカスを設定することができません(これはフレームページです:topFrameとbotFrame)2を持つドロップダウンリスト、ドロップダウンのリストがあり、依存しています。 これらのドロップダウンリストの値は表から取り込まれます。 にアクセスできない最初のドロップダウンのフォーカスを、以降の2番目の依存ドロップダウンリストのリロード後に設定します。私のコードを参照してください、あなたの助けが必要です!申し訳ありませんが私はこの質問を繰り返す場合は、私は正しい答えを見つけることができませんでした。どのようにJavaScriptを使用して、ドロップダウンリストにフォーカスを設定するには、PHP

<!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

ちょうど好奇心がなぜあなたは2つのdoctypesを持っていますか? – YuS

+0

本当にあなたが求めているものは得られませんでした。両方のドロップダウンに注目しますか? 1つの要素だけにフォーカスすることができます。何が問題なのか、何を達成したいのですか? – YuS

+0

私が欲しいのは簡単です。最初に2つのドロップダウンリストが表示され、最初のドロップダウンリストにフォーカスが設定されていなければならず、最初のドロップダウンで項目が選択されたときにページがリロードされ、2番目のドロップダウンリストに値が設定され、 – user1114409

答えて

0

"topFrame" はここで完全に範囲外である:

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

ではなく、これを実行します。

は、フォームフィールドにIDを与える:変更にfirstfield

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

これは:

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

そして、無関係なノートでは、あなたの人生を楽にし、jQueryの使用を開始してください。 :)

+0

エリック、これはうまくいきません、私はfirefox 9.01を使用しています。これはブラウザの問題です。どうやってjQueryを使って同じことをするのですか? – user1114409

+0

フォームフィールドではなくフォームにフォーカスを設定しました。これは今私が作品を検証した上記の答えで修正されました。 jQueryについては、http://jquery.com/をご覧ください。 –

+0

Eric、これはうまくいきましたありがとうございます!私もjqueryを試してみましたが、これは非常に優れたオプションです。どうもありがとうございました。 この唯一の問題は、フックをドロップダウンに設定していないことです。欠落しているものがあります。 – user1114409

関連する問題