0

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

中的 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> 

4

1 回答 1

0

你似乎混合了 php 和 javascript。PHP 在服务器端执行,您不能通过更改选择或类似的方式调用它(通过 Ajax 除外)。

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

于 2013-04-05T16:21:18.610 回答