【问题标题】:Why does my entire code disappear if I remove my form tag?如果我删除我的表单标签,为什么我的整个代码会消失?
【发布时间】:2014-02-19 06:00:12
【问题描述】:

注意: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>

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

但是在我改变它之后:

奇怪的是,如果我将表单放入表单中,它又开始工作了!所以这行得通:

    <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 和标签以及输入标签。有什么问题?

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

【问题讨论】:

  • 为什么不在问题中发布 CSS 以及完整的 HTML?
  • 将生成的 HTML 和 CSS 放在 jsfiddle.net 中
  • 这里是小提琴:jsfiddle.net/QDk29/3 但它在小屏幕上被压缩得很糟糕所以这里是:jsfiddle.net/QDk29/3/embedded/result
  • 一页上有这么多表格的原因是什么?
  • 其实就是这样,我意识到表格太多了,决定暂时把它缩短到只有两个。一种形式用于搜索选项(存储在一个选项卡中),另一种用于查询(存储在完全独立的选项卡中)。但是当我这样做时,表格消失了!

标签: php html forms debugging tags


【解决方案1】:

我找到了解决方案,真的就是这么简单。但是,我不知道为什么会这样。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2012-01-02
    • 2023-03-06
    相关资源
    最近更新 更多