如何在“select”元素上正确刷新PHP中的页面?
在我的作业中,我有2个组合框1)车型和2)特定于那种类型的颜色 每当我选择一种类型时,我需要重新刷新链接的颜色。
似乎onchange="this.form.submit()"
不起作用!
这是我的代码:
<?php
include_once ("config.php");
$link = mysql_connect($host,$user,$pass) or die("Could not connect : " . mysql_error());
mysql_select_db($db_name) or die("Could not select database");
?>
<html>
<head>
</head>
<body>
<?php
$menu_type=$_POST['menu_type'];
echo 'menu_type='.$menu_type.'<br/>';
echo 'empty='.(bool)empty($menu_type).'<br/>';
echo '-1='.(bool)($menu_type==-1);
?>
<table>
<form name="myform" action="ajoute.php" method="POST" >
<tr>
<td>Matricule</td>
<td><input type="text" value="" style="width:150px;" name="Matricule"></td>
</tr>
<tr>
<td>Vehicule</td>
<td>Couleur</td>
</tr>
<tr>
<td><select name="menu_type" style="width:150px;" onchange="this.form.submit()">
<option value="-1">Select voiture type</option>
<?php
$resType = mysql_query("SELECT * FROM type_vehicule") or die(mysql_error());
for ($i=0; $i<mysql_num_rows($resType); $i++)
{
$row=mysql_fetch_array($resType);
echo "<option value = ".$row['ID'].">".$row['nom']."</option>";
}?>
</select>
</td>
<td>
<?php
echo "empty = ".(bool)empty($menu_type)."; $menu_type = ".$menu_type;
?>
<select name="menu_couleur" size="1" style="width:150px;">
<?php
if (empty($menu_type) || $menu_type == -1)
{
echo "<option value='-1'>Select voiture type</option>";
}
else
{
$type=(int)$menu_type;
$result=mysql_query("SELECT c.Id, c.Couleur FROM couleur c inner join
type_couleur tc on c.id=tc.Couleur_ID where tc.type_id=".$type);
while ($row = mysql_fetch_array($result)) {
echo "<option value=".$row['ID'].">".$row['couleur']."</option>";
}
}
?>
</select>
</td>
</tr>
<tr>
<td align="right" colspan=2><input type="submit" name="submit" value="Valide"></td>
</tr>
</form>
</table>
<?php
mysql_free_result($resType);
mysql_close($link);
?>
</body>
</html>
答案 0 :(得分:1)
问题是因为您将提交按钮命名为提交(即name =“submit”)。因此,当你执行this.form.submit()时,它会尝试在html元素上执行一个函数。
在chrome javascrip控制台中,我收到错误:
document.formname.submit不是函数Uncaught TypeError:对象#HTMLForm元素的属性'submit'不是函数
进行了谷歌搜索,并提出了解释所有内容的页面:http://eee94180.blogspot.com/2008/09/javascript-formsubmit-is-not-function.html
所以你解决了你的问题,只需在提交按钮中删除name =“submit”,或者将其命名为其他名称,例如name =“submitButton”。
答案 1 :(得分:0)
首先,您已经在表格标签内写了表格,这是不正确的。 它应该是这样的
<form>
<table>
...
</table>
</form>
以HTML格式获取输出,并查看控制台中是否出现任何javascript错误,以便于识别。同时检查“提交”按钮名称。