Мои последние несколько проектов имели формы повсюду, и когда php заполнял эти формы каждый раз, было больно в задницу.
Для моего текущего проекта я оставил входные имена такими же, какимена полей mysql.Упрощает отправку и заполнение.
Когда дело доходит до заполнения форм, я использую некоторый ajax (jQuery используется во всем проекте, поэтому с помощью функции jjery ajax ();
FORM
<form>
<input name="field_one" type = "text" >
<input name="field_two" type = "text" >
<input type="button" value="Send">
</form>
Я помещаю условный оператор в верхней части документа по следующим строкам:
<?php if($_POST['update']){
$query=mysql_query("SELECT * FROM table WHERE unique_id='$id' LIMIT 1");
echo json_encode(mysql_fetch_assoc($query));
exit;
} ?>
Допустим, у вас есть список элементов, которые вы хотите иметь возможность щелкать и редактировать (заполните форму соответствующими данными.) Я присваиваю ей атрибут data-
и заполняю его уникальным идентификатором, обычно AI PRIMARYKEY, например:
while($r=mysql_fetch_assoc($data)){
echo "<li data-unique_id=\"\">$r[name]<span class="edit">edit</span></li>";
?>
$('.edit').click(function(){
var toget = $(this).parent().data('unique_id');
$.ajax({
url:'here so it sends to itself',
data:'update='+toget,
success:function(data){
for (var key in data) {
if (data.hasOwnProperty(key)) {
$('input[name="'+key+'"]').each(function(){
$(this).val(data[key]);
});
}
}
}
});
Для <select>, <textarea>, checkboxes
требуется немного больше работы, но применима та же общая идея, (я добавил пару операторов if, но, вероятно, это можно было бы обработать лучше)
Я мог бы объяснить это лучше, но я надеюсь, что вы поняли идею, и ябыла некоторая помощь.
К вашему сведению
мои вставки похожи на ...
foreach($_POST as $k=>$v){
$v=mysql_real_escape_string($v);
$fields.=" `$k`,";
$vals.=" '$v',";
}
$fields=substr($fields,0,strlen($fields)-1);//to get rid of the comma :)
$vals=substr($vals,0,strlen($vals)-1);//and again
mysql_query("INSERT INTO ($fields) VALUES ($vals)");