我想检查用户浏览器类型并单击表单提交按钮以根据浏览器类型对不同页面进行操作,但是当我使用 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 ?>
的内容
最佳答案
将 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。
关于php - 如何修复 javascript 和 php mysql 中不同页面问题的表单操作,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975904/