0

この質問に対する答えを見つけるために多くの場所を調査しましたが、私の本当の質問に完全に答えることはありません。同じ Web サイト内の新しいページに移動するための最良の/承認された方法は何ですか? 検索エンジンはあなたが何かを隠していると考えるので、 window.location を使用するのは悪いことだと読みました。しかし、新しいウィンドウ (window.open) を開きたくない場合、他に方法がわかりません。必要に応じて、リンクとフォーム アクションで href アンカーを使用します。しかし、onclick を使用したメニューやボタンがある場合は、別のものが必要になります。

これが私のコードのスニペットです:

私のJavaScript:(1つのオプションがコメントされています)

function gotoCat() {
   var catcdF = document.catSelect.catcd.value; 
   <?php 
   echo "window.location.href='http://www.mysite.org".$pgmdir."services/busMenu.php?catF='+catcdF; ";
   /*
   echo "window.open('http://www.mysite.org".$pgmdir."services/busMenu.php?catF='+catcdF,'','resizable=1,scrollbars=1,toolbar=1,top=50,left=300,width=950,height=800,location=0'); ";
   */
   ?>
} 

フォーム内の動的 SELECT リスト (PHP 内):

   echo " <select name='catcd' id='catcd' size='8' onclick=gotoCat() > \n"; 
             // display list of categories   
     if ($numcats == 0) { // print message text only
        echo "<option value='0' >".$catMsg."</option> \n";
     }
     else {
        for ($i=1; $i<=$numcats; $i++) {
         $catcd_db = $catAry[$i][1];
         $catName_db = $catAry[$i][2];
         echo "<option value='".$catcd_db."'> ".$catName_db." </option> \n";   
        }
     }
  echo "</select>";

ご覧のとおり、ユーザーに選択を許可し、選択すると正しい Web ページに自動的に移動する方法が必要です。これは常に選択リストにあるとは限りません。多くの場合、終了したいときやエラーが発生したいときです。

     if (mysqli_connect_errno()) { 
       echo "<br/> <p style='text-align:center;'> <button type='button' 
           class='buttonStyle' style='padding: 4px 20px;' value='Exit' ";
       echo "onClick=\"window.location.href='http://www.mysite.org/services/catSelbus.php?rc=1&func=Rev'\" > ";  
       echo "Exit </button></p> ";
    }

元のフォームではなく、前のページに移動する必要があるため、「戻る」は使用できません。

したがって、私のナビゲーション方法が本当に的外れでない限り、javascript onClick を使用して同じ Web サイトの次のページに移動するための許容可能な方法を知る必要があると思います。window.location は問題ありませんか、それとも別のものを使用する必要がありますか?

意見や提案は大歓迎です!

4

2 に答える 2

0

Javascript を使用して別のページに移動するには、次を使用します。

window.location.href = "url";

それがその方法であり、それについて何も悪いことはありません。


議論のために、隠しリンクを作成してクリックをシミュレートすることもできますが、私が言ったように、実際にはその必要はありません。

于 2013-08-31T12:12:10.407 に答える
0

header('location')代わりにphp を使用できます。

<form action="submit.php">

<input type="hidden" value="test" name="hidden1" />
<input type="submit" Value="Exit" ... />

submit.php

<?php
  if (isset($_POST['hidden1'])
  {
    header('Location: http://www.mysite.org/services/catSelbus.php?rc=1&func=Rev');
    exit;
  }
?>

についての詳細情報header('Location ...');: http://php.net/manual/en/function.header.php

非表示の代わりに、の値を使用し、変数selectを介して取得します。$_POST

于 2013-08-31T12:27:01.910 に答える