2013-08-31 2 views
0

Я исследовал много мест, чтобы найти ответ на этот вопрос, но они никогда не отвечают на мой реальный вопрос: что является лучшим/утвержденным способом перехода на новую страницу в пределах того же Веб-сайт? Я читал, что плохо использовать window.location, потому что поисковые системы будут думать, что вы что-то скрываете. Но, когда я не хочу открывать новое окно (window.open), тогда я не знаю, как это сделать. Я использую привязки href в ссылках и действиях формы, где это необходимо. Но когда у меня есть меню или кнопки с onclick, мне нужно что-то еще.Утвержденный способ перемещения между страницами на одном сайте

Вот фрагмент моего кода:

мой JavaScript: (с одним из вариантов комментировал)

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'); "; 
    */ 
    ?> 
} 

Мой динамический ВЫБРАТЬ список в форме (в 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>"; 

Итак, как вы можете видеть, я просто хочу, чтобы метод позволял пользователю выбирать, а затем автоматически После этого выберите подходящую веб-страницу. Это не всегда в списке выбора. Часто это когда они хотят, чтобы выйти или получить ошибку:

 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 для перехода на следующую страницу на том же сайте. Является ли window.location в порядке, или я должен использовать что-то еще?

Любые мнения или предложения приветствуются!

ответ

0

Для перехода на другую страницу с помощью Javascript, используйте:

window.location.href = "url"; 

Вот как это делается, и нет ничего плохого о нем.


Ради аргумента, вы могли создать скрытую ссылку и имитировать щелчок на нем, но, как я уже сказал, на самом деле нет необходимости.

+0

Итак, вы говорите, что нет проблемы с переходом окна на один и тот же сайт? Я читал так часто, что браузеры могут «занести в черный список» ваш сайт, если у вас есть перенаправления. Является ли window.location перенаправлением? – user2735375

0

Вы можете использовать PHP header('location') вместо:

<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 переменная.

+0

Не забудьте 'exit();' после вызова 'header()', иначе PHP будет продолжать работать до тех пор, пока не будет прерван сломанным соединением браузера.Это состояние гонки и источник многих неудобных ошибок. – halfer

+0

Спасибо, это было давно, так как я закодирован в PHP ^^ – sockfd

+0

Спасибо за предложение. Я не могу использовать заголовок PHP, потому что я пишу на страницу с html до некоторых повторных местоположений. Однако мне было интересно узнать что-то в вашем примере: как php знает о значении POST, когда он недоступен до тех пор, пока форма не будет обработана? PHP будет сделан к тому времени, когда будет установлен POST. Возможно, я неправильно понимаю это. – user2735375

Смежные вопросы