我已经研究了许多地方来找到这个问题的答案,但他们从来没有完全回答我的真实问题:在同一网站内移动到新页面的最佳/批准方式是什么?我已经读过使用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'); ";
*/
?>
}
表单中的动态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>";
因此,正如您所看到的,我只想要一种允许用户选择的方法,然后在选择后自动转到正确的网页。这并不总是在选择列表中。通常是在他们想要退出或出错时:
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 :(得分:0)
要使用Javascript导航到其他页面,请使用:
window.location.href = "url";
这就是它的完成方式,没有任何问题。
为了争论,你可以创建一个隐藏的链接并模拟它的点击,但正如我所说的,真的没有必要。
答案 1 :(得分: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
变量获取该值。