Как разрешить пользователю вставлять иерархическую нумерацию, как показано ниже. На данный момент я использую текстовое поле, и пользователь будет вводить номер, такой как 1, 1.1, 2, 2.1, 2.1.1
, И я могу только отображать данные четко, без отступа. Я использую PHP и MySql в качестве базы данных.
1 элемент списка 1.1 Элемент списка 1.1.1 Элемент списка 2 Элемент списка 2.1 Элемент списка 2.1.1 Элемент списка
Моя форма
<form action="basicview.php?id=<?php echo $p_aid; ?>&&do=insert" method="post">
<div style="padding-bottom:5px">
<div style="float:left;width:5%;padding-top:7px"><label style="color:blue">No</label></div>
<div style="float:left;"><input class="text-input" type="text" name="t_no" size="10" value="" /></div>
<div class="clear"></div>
</div>
<div style="padding-bottom:5px">
<div style="float:left;width:15%;padding-top:7px"><label style="color:blue">Deliverables</label></div>
<div style="float:left;"><textarea class="text-input textarea" name="t_deliverables" cols="70" rows="2"></textarea></div>
<div class="clear"></div>
</div>
PHP.
if ($_GET['do'] == 'insert')
{
$t_no = $_POST['t_no'];
$t_deliverables = $_POST['t_deliverables'];
$sql = "INSERT INTO tbl_detail (p_aid,t_no,t_deliverables) ";
$sql .= "VALUES ($p_aid,'$t_no','$t_deliverables')";
mysql_query($sql);
redirect("basicview.php?id=$p_aid&type=success&msg=new+row+added");
}
Если вы хотите, чтобы пользователи могли публиковать HTML-данные, а не обычный текст, вы можете использовать ckeditor
или другие подобные инструменты. Эти инструменты преобразуют текстовое поле в поле, подобное этому, в stackoverflow.
Но имейте в виду, что для предотвращения XSS-атак вы должны проверить размещенные данные на стороне сервера.
Что еще более важно, то, как вы написали свой SQL-запрос, он очень уязвим для sql injection
, использование prepared statements
вместо. Например, если злонамеренный пользователь разместит эти данные, вы потеряете все данные в таблице tbl_detail:
$ _POST [ ‘t_no’] = «1»
$ _POST [‘t_deliverables’] = «1 ‘); удалить таблицу tbl_detail; -«
Других решений пока нет …