0

我想检查用户浏览器类型并单击表单提交按钮以根据浏览器类型对不同的页面进行操作,但是当我使用 PHP while 循环时,<form xxxxxxx onSubmit="javascript function()">无法运行,只需link/a.php使用两个浏览器即可。如果我删除while循环,它可以成功运行,例如Chrome浏览器去a.php和IE浏览器去b.php。如何解决?代码如下。第一步是从Quirksmode导入检查浏览器类型的 javascript 代码

然后这是一个while循环版本。

<script>
   function redirect(){
      if(BrowserDetect.browser == 'Chrome'){
         document.getElementById("albumlist").setAttribute("action", "link/a.php");
      }
      if(BrowserDetect.browser == 'Explorer'){
         document.getElementById("albumlist").setAttribute("action", "link/b.php");
      }
   }
</script>

<body></body>.

<?php

$result = mysql_query("SELECT * FROM album GROUP BY folderName ORDER BY id desc");

while($data = mysql_fetch_array($result)){

   $folderName = $data['folderName'];
   ...
   ...

?>

   <form name="albumlist" id="albumlist" method="post" action="link/a.php" target="_blank" onSubmit="redirect();">
      <input type="hidden" name="folderName" id="folderName" value="<?php echo $folderName; ?>" />
      <input type="submit" id="submitfolderlist" name="submitfolderlist" value="Submit" />
   </form>

<?php

}

?>

然后一个没有while循环的版本只是删除所有关于<?php while loop code ?>

4

2 回答 2

0

我会用 PHP 检测当前页面上的浏览器....并相应地更改操作链接。这样你就完全不需要 javascript。

像这样的东西在你的页面顶部......

$ua = $_SERVER["HTTP_USER_AGENT"];
/* ==== Detect the UA ==== */
$chrome = strpos($ua, 'Chrome') ? true : false; 

// Internet Exlporer
$msie = strpos($ua, 'MSIE') ? true : false; 
// All Internet Explorer

if($chrome){ $link = "link/a.php";}
elseif($msie){$link = "link/b.php";}

然后在您的表单中,只需回显该操作的 $link 变量...

<form name="albumlist" id="albumlist" method="post" action="<?echo $link;?>" target=_blank> 

PS完全未经测试......我只是给你一个想法......

于 2013-06-07T03:53:40.693 回答
0

将 JS 更改为:

<script>
   function redirect(form){
      if(BrowserDetect.browser == 'Chrome'){
         form.setAttribute("action", "link/a.php");
      }
      if(BrowserDetect.browser == 'Explorer'){
         form.setAttribute("action", "link/b.php");
      }
   }
</script>

然后将您的 PHP 更改为:

   <form name="albumlist" method="post" action="link/a.php" target="_blank" onSubmit="redirect(this);">
      <input type="hidden" name="folderName" id="folderName" value="<?php echo $folderName; ?>" />
      <input type="submit" name="submitfolderlist" value="Submit" />
   </form>

这消除了表单和提交按钮上的重复 ID。

于 2013-06-07T03:59:52.040 回答