如果删除表单标记,为什么我的整个代码都会消失?

时间:2014-02-19 06:00:12

标签: php html forms debugging tags

注意:Here is the fiddle,因为看起来很糟糕,Here is the full screen result

Here is the fiddle after I do my changes on my computer and generate the htmlhere is the full screen

关于小提琴的注意事项: 我将整个代码添加到小提琴中,因为它不起作用,除非它是整个代码。

感谢任何会提示的人!我唯一的问题是标题中的那个,没有别的。 :)

=====

我正在开设一个本科项目来创建一个访问数据库的界面(虽然我不是CS学生)。我的代码表现得非常奇怪。我有一个窗口的代码,显示一个大的div并排包围三个div,这是这样构造的:

<div id="container">
    <div id="window1">
        <form></form> //my buttons
    </div>
    <div id="window2">
        <form></form> //my body
    </div>
    <div id="window3">
    //I havent written anything here yet
    </div>
</div>

但我意识到让我们用一种形式包装它们更有意义。像这样:

<div id="container">
<form>
    <div id="tab1">

    </div>
    <div id="tab2">

    </div>
    <div id="tab3">

    </div>
</form>
</div>

所以在第一种情况下,这就是我的网站的样子:

normal

但在我改变之后:

abnormal

奇怪的是,如果我在表单中放置表单,它会重新开始工作!所以这有效:

    <div id="container">
    <form>
        <div id="tab1">
            <form></form>
        </div>
        <div id="tab2">
            <form></form>
        </div>
        <div id="tab3">

        </div>
    </form>
</div>

如果你需要查看我的代码,我实际上是使用PHP生成html,因为它很多,所以(这是不起作用的方法):

        <div id="search_separator" class="upper_tab">
        <form action="" method="post">
            <div id="button_container">

                    <?php
                        $tbs_a = 1;
                        $tbs_name = 'table_selector';
                        $printRetain_button = '';

                        $fg = input::get($tbs_name);

                        echo '<label for="',$tbs_name,'"></label>';

                        foreach($table_arrays AS $ta => $table){
                            $tbs_val = "table".$tbs_a;
                            if($tbs_a==1){
                                echo '<div class="button"><input type="radio" class="tabl_selector" name="',$tbs_name,'" value="',$tbs_val,'" checked="default"/><div class="table_selector">',$ta,'</div></div>';
                            }else{
                                echo '<div class="button"><input type="radio" class="tabl_selector" name="',$tbs_name,'" value="',$tbs_val,'"';
                                if($tbs_val == $fg){
                                    echo ' checked="checked"';
                                }//make a separate echo for table1 radio button with the default turned on.
                                echo '/><div class="table_selector">',$ta,'</div></div>';
                            }
                            $tbs_a++;
                        }
                    ?>
                    <!--<input type="submit" name="submit" value="submit" />-->

            </div>

            <div id="search_container" class="content">

                    <?php
                        $a = 1;
                        $search = DB::getInstance();
                        foreach($table_arrays AS $t_a => $table){
                            $y = 1;
                            echo '<div id="table',$a,'_content" class="table_content">';
                            echo "<h2>",$t_a,'</h2><table align="center" id="actualhtmltable">';
                            foreach($table AS $t => $field){
                                $name = "table".$a."_field".$y;
                                $val_sticky = escape(input::get($name));
                                $val_find = $search->get($t_a, array($t, '=', input::get($name)));
                                //$val_find = $search->get('user_credentials', array('user_id', '=', 28))->results();

                                if(!empty($val_find)){
                                    $val = array();
                                    foreach($val_find[0] AS $vfz){
                                        $val[] = $vfz;
                                    }
                                } elseif(!empty($val_sticky)){
                                    $valu = $val_sticky;
                                } else {
                                    $valu = "";
                                }

                                echo '<tr><div><td>',$t,'</td><td><label for="',$name,'"><input type="text" class="entryfields" name="',$name,'" value="';
                                if(!empty($val[$y-1])){
                                    echo $val[$y-1];
                                } else {
                                    echo $valu;
                                }
                                echo '" /></label></td></div></tr>';
                                $y++;
                            }
                            echo '</table></div>';
                            $a++;
                        }
                    ?>
                    <div class="Tableformbutton">
                        <div class="FindModeButtons">
                            <input type="Submit" name="find" value="Find" id="find" class="findupdateinsert" />
                            <input type="Submit" name="update" value="Update" id="update" class="findupdateinsert" />
                        </div>
                        <input type="Submit" name="insert" value="Insert" id="insert" class="findupdateinsert" />
                    </div>

            </div>

            <div id="other_container">
                <!--find mode on and other functionalities-->
            </div>
            <div class="hassubmit" id="searchsubmit_container">
                <input type="button" id="findmodetoggler" name="query_submit" value="Toggle Find Mode" class="top_buttons" />
                <a href="#" class="tip"><input="button" name="Help" value="Help" class="top_buttons" id="help" />
                    <span>&nbsp;&nbsp;&nbsp;Click "Toggle Find Mode" to toggle between find/update and insert buttons.<br />
                    &nbsp;&nbsp;&nbsp;If find mode is on, you will be able to look for existing records and update them. Otherwise, you can only insert new entries.<br />
                    &nbsp;&nbsp;&nbsp;Find mode is off by default.</span>
                    <p>Need Help?</p>
                </a>
            </div>
        </form>
    </div>

据我所知,它应该有效!我的HTML中没有看到任何内容,至于我的CSS,我在那里没有关于表单的样式,只有div和标签以及输入标签。可能有什么不对?

感谢任何提供提示或想法的人!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,这真的很简单。但是,我不知道为什么以这种方式发生。

我在我需要的表单中添加了id="search_form",然后使用CSS来表示.search_form{ height: 100% },显然,在制作表单时,它将所有内容的高度调整为几个像素。这很奇怪,但至少我找到了答案。