如何在javascript和PHP mysql中修复表单动作到不同的页面问题
how to fix form action to different page issue in javascript and php mysql,
我想检查用户的浏览器类型,点击表单提交按钮,根据浏览器类型对不同的页面进行操作,但是当我使用PHP while循环时,<form xxxxxxx onSubmit="javascript function()">
无法运行,只是用两个浏览器去link/a.php
。如果我删除while循环,它可以成功运行,如Chrome浏览器转a.php和IE浏览器转b.php。如何解决这个问题?代码如下。第一步是从Quirksmode
那么这是一个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了。
像这样在你的页面顶部......
$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完全未经测试…
相关文章:
- JavaScript上的表单和innerHTML问题
- Small Javascript从动态表单中删除多个元素的问题
- 表单未提交问题
- 表单提交问题,如何在我的URL末尾获得ID的值
- 谷歌表单xml有问题
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- ASP MVC复选框表单提交问题
- JS表单验证问题
- ajax表单提交的编码问题
- 带有jquery验证问题的php表单
- 在我的Javascript和HTML之间的表单提交按钮链接中遇到问题
- 贝宝表单问题的单选按钮选择
- 从表单javascript返回值时出现问题
- CORS问题,同时提交数据到谷歌表单的角度
- jQuery表单验证和提交问题
- 将数据从HTML表单传递和处理到外部JS时出现问题
- 带有两个提交按钮的提交表单,每个按钮执行不同的操作问题
- 使用jQuery和Ajax表单提交问题
- jQuery表单和Json问题
- Firefox的Javascript问题:表单提交时不更新状态