2013-04-05 48 views
0

我是新来的PHP。我在选择选项中的onchange事件中遇到问题...如果我更改 类别,整个表单将被提交而不是更改类别1的值。OnChangeEvent类别和子类

在onchange事件中的问题onchange="myform.submit()"

<form name="myform" method="POST" action="getsearch.php"> 
     <table style=" border:1px solid silver" cellpadding="10px" cellspacing="0px" align="center"> 
      <tr> 
       <td colspan="3" style="background:#0066FF; color:#FFFFFF; font-size:20px">Search</td> 
      </tr> 

      <tr> 
      <td>Name</td> 
       <td><input type="text" name="name" size="40" /></td> 
      </tr> 
      <tr> 
      <td>Email</td> 
       <td><input type="text" name="email" size="40" /></td> 
      </tr> 
      <tr> 
      <td>Phone</td> 
       <td><input type="text" name="phone" size="40" /></td> 
      </tr> 


      <tr> 
       <td>categories</td> 
       <td><select name="first" onchange="myform.submit()"> 
        <option value="">select the category</option> 
        <?php 
          $sql="select *from first_category"; 
          $res=mysql_query($sql); 
          echo $res; 
          if(mysql_num_rows($res)>0) 
          { 
            while($row=mysql_fetch_assoc($res)) 
            { 
             if(isset($_POST["first"]) AND $_POST["first"]==$row["first_id"]) 
             $select ="selected='selected'"; 
             else 
             $select=''; 
             echo '<option value="'.$row["first_id"].'" '.$select.'>'.$row["category_name"].'</option>'; 
            } 

            } 
         ?> 
       </select></td> 

      </tr> 
      <tr> 
       <td>categories1</td> 
       <td><select name="second"> 
         <option value="">select the second category</option> 
         <?php 
          if(isset($_POST["first"])) 
          { 

           $sql="select *from second_category where first_id=".intval($_POST["first"]); 
           $res=mysql_query($sql); 
           echo $res; 
           if(mysql_num_rows($res)>0) 
           { 
            while($row=mysql_fetch_assoc($res)) 
            { 
             echo '<option value="'.$row["second_id"].'">'.$row["second_categoryname"].'</option>'; 
            } 

           } 
          } 
           ?> 
            </select></td> 

      </tr> 
      <center><tr > 
        <td valign="middle"><input type="submit" value="Search" id="hi" name="hi" /></td> 
      </tr></center> 

     </table> 

+2

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql) 。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。 – Kermit 2013-04-05 13:59:52

+0

当然,应该提交表单,因为您称为myform.submit。你想做什么而不是那个?请清楚你的问题。 另外,请注意第一条评论。 – Eralph 2013-04-05 14:11:44

+0

我想他想要第二个选择字段被动态填充... – ITroubs 2013-04-05 14:21:02

回答

0

你似乎混合PHP和JavaScript。 PHP在服务器端执行,你不能通过改变select或类似的东西来调用它(除了通过Ajax)。

所以,如果你真的想要这种行为,你可以将你的数据转储到一个JavaScript对象,然后遍历它来动态填充第二个选择或通过Ajax实现它。为此:调用一个额外的PHP脚本,它只是返回正确的值,并通过JavaScript填充它们。你可以在这里找到一个很好的教程如何用jQuery解决这个问题:http://www.9lessons.info/2010/08/dynamic-dependent-select-box-using.html