Форма выпуска (закрытие себя рано в таблице) - PullRequest
3 голосов
/ 10 сентября 2010

Я запускаю запрос через php в базе данных mysql.С моим набором результатов я перебираю следующую таблицу:

        $resultString = '<table>';
        $resultString .= '<tr>';
        $resultString .= '<th>Index</th>';
        $resultString .= '<th>Title</th>';
        $resultString .= '<th>File</th>';
        $resultString .= '<th>Template File</th>';
        $resultString .= '<th>Pretty URL</th>';
        $resultString .= '<th>Parent</th>';
        $resultString .= '<th></th>';
        $resultString .= '</tr>';

        while($data = mysql_fetch_assoc($results)){
            $resultString .= '<form class="myForm">' ."\n";

            $resultString .= '<tr>' ."\n";

            $resultString .= '<input type="hidden" name="index" value="' . $data['index'] . '">' ."\n";
            $resultString .= '<input type="hidden" name="title" value="' . $data['title'] . '">' ."\n";
            $resultString .= '<input type="hidden" name="file_name" value="' . $data['file_name'] . '">' ."\n";
            $resultString .= '<input type="hidden" name="template_file" value="' . $data['template_file'] . '">' ."\n";
            $resultString .= '<input type="hidden" name="child_of" value="' . $data['child_of'] . '">' ."\n";
            $resultString .= '<input type="hidden" name="pretty_url" value="' . $data['pretty_url'] . '">' ."\n";

            $resultString .= '<td class="indexTd">' . $data['index'] . '</td>' ."\n";
            $resultString .= '<td>' . $data['title'] . '</td>' ."\n";
            $resultString .= '<td>' . $data['file_name'] . '</td>' ."\n";
            $resultString .= '<td>' . $data['template_file'] . '</td>' ."\n";
            $resultString .= '<td>' . $data['pretty_url'] . '</td>' ."\n";
            $resultString .= '<td>' . $this->get_parent_select_list($data['child_of'],$data['index']) . '</td>' ."\n";
            $resultString .= '<td class="buttonTd"><input type="button" class="deletePageButton" value="X" onclick="submit_form(this,\'deletePage\')"></td>' ."\n";

            $resultString .= '</tr>' ."\n";

            $resultString .= '</form>' ."\n";
        }

        $resultString .= '</table>';

Таблица получается великолепной, единственная проблема в том, что моя форма вообще не работает ... Просмотр ее в FireBug Я вижу это:

alt text

Форма закрывается сама, потому что все мои входные теги могут заполнить ее.Я пытался поместить теги внутри "

" вместо "", но безрезультатно ...

мысли?

Ответы [ 3 ]

11 голосов
/ 10 сентября 2010

Когда вы открываете тег в другом теге, открываемый тег закрывается, когда закрывается его родительский элемент. Итак, это:

<p><form></p>
<p></form></p>

приведет (или должен) привести к:

<p><form></form></p>
<p></p>

Вы должны открыть свою форму над таблицей и закрыть ее внизу, тем самым заключив в форму всю таблицу.

Размещение не табличных тегов между тегами tr, td, thead, tbody, tfoot или th является плохой практикой и не соответствует w3c

0 голосов
/ 11 сентября 2010

Вам нужно будет поместить форму внутри TD.

Я бы также рекомендовал использовать шаблон для генерации HTML, но это выходит за рамки этого вопроса.

0 голосов
/ 10 сентября 2010

egads!Вы никогда не должны вкладывать html-элементы подобным образом!формы должны входить внутрь <td> или за пределы всей таблицы.и вы не должны помещать скрытые элементы формы в <tr>!они должны идти в <td>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...