Как "красиво" занести значения из формы

Как я понял вот это убрать: unset($_POST['button']);

Извини я не имел в виду убирать только изправить на имя submit бутона так как в if-е ты изпользуешь один а убираеш другой.
если name=submit в форме тогда поправь его на unset($_POST['submit']);

твой checkbox будет собирать все выбраные от этой групе в один array через запетаю.

пример - будет $masiv['formation_of_groups'] = "один,два,три"
 
извини я не имел в виду убирать только изправить на имя submit бутона так как в if-е ты изпользуешь один а убираеш другой.
если name=submit в форме тогда поправь его на unset($_POST['submit']);
твой checkbox будет собирать все выбраные в один масив.
Принял! :) вот как выглядит <button type=submit>ОТПРАВИТЬ</button>
thoth777 я так понял с твоим вариантом обработка формы выглядит так:
PHP:
if(isset($_POST['submit']))
{
	unset($_POST['submit']);
	$legal_variables=array(
	'var1','var2','var3','field1','field2','field3','field4'
	);
	reset ($_POST); $post=array_fill_keys($legal_variables, '');
	while (list($k,$v)=each($_POST)){
	if (! in_array($k,$legal_variables)){continue;}
	$v = htmlspecialchars($v);
	$post[$k]=addslashes(trim($v));
	}
	$keys=join(', ',array_keys($post);
	$values='"'.join('", "',array_keys($post).'"';
	$sql="INSERT INTO `tabl` (".$keys.") VALUES (".$values.");";
	$query = mysql_query($sql);
	if($query == 'true') 
	{
		echo "<div class=message>ИНФОРМАЦИЯ УСПЕШНО ДОБАВЛЕНА</div>";
	}
}
Громоздко как то получается. :(
 
jon4god, да, все так
НО
если у тебя в форме есть массив чекбоксов вида
<input type=checkbox name="checkbox[]">
то его придется обрабатывать отдельно
и тут 2 варианта
или для каждого чекбокса у тебя должен быть свой набор полей вида
checkbox1 checkbox2 checkbox3
или можешь объединить значения чекбоксов с помощью join

в обработчике перед
$v = htmlspecialchars($v);

пишешь
if (is_array($v)){
$v=join(',',$v);
}
в случае с числовыми значениями - самое оно.

>>Громоздко как то получается.
зато точно знаешь какие именно поля будут отправлены в таблицу.
 
<button type=submit>ОТПРАВИТЬ</button>

если так тогда он не будет в $_POST и проверять
if(isset($_POST['submit']))
и убирать unset($_POST['submit']); не будет.
(если хочешь проверять добавь name в бутоне).

ну и это тоже решение только обработка информации надо переместить в отдельном файле(без if и unset).



зато точно знаешь какие именно поля будут отправлены в таблицу.
Только один минус - то что надо написать их вручную(40+ елементов).
 
if (is_array($v)){
$v=join(',',$v);
}
Как я понял нужно для обработки чекбоксов? Чтобы они через запятую в таблицу ушли? Они у меня числовые, но может все измениться, так как потом нужно будет из собранной через форму информации сделать доску объявлений и может удобнее будет сразу строками выводить, а не присваивать переменным значение через условие (типа если 1,3 тогда Сепульки и Грюнзики).
добавь name в бутоне
Спасибо! Добавил!
 
если они через запетаю потом когда их берешь обратно из mysql можешь их конвертировать в первоначальном виде через implode();

пример =
$var = implode(",", $checkbox_mysql);
 
Большое всем спасибо! На сегодня меня хватит. :)
Как только создам таблицу в базе опробую "все" предложенное и конечно вновь прибегу всех вас спрашивать! :)
У обоих решений есть свои плюсы, но выявить их поможет только практика.
solarb и thoth777 еще раз спасибо!
 
Только один минус - то что надо написать их вручную(40+ елементов).
уложить в базу это пол-дела.
вторая половина - обработать значения.
как их обработать если не знаешь какие у тебя поля, например.
ведь потом какие-то выборки надо делать.

Добавлено через 1 минуту
У обоих решений есть свои плюсы, но выявить их поможет только практика.
solarb и thoth777 еще раз спасибо!
на здоровье :)

как потом будешь обрабатывать полученные данные, и будешь ли?
от этого и зависит способ укладки в базу.
 
как потом будешь обрабатывать полученные данные, и будешь ли?
от этого и зависит способ укладки в базу.
Обрабатывать буду. Редактирование и одобрение данных в админке. Создание с их помощью доски объявлений.
 
Возник новый вопрос... На данный момент пока остановился на вот этом, но...
PHP:
			foreach($_POST as $index=>$value)
			{
			if(is_array($value)){$value = join(',',$value);};
			$masiv[$value] = htmlspecialchars($value);
			$mas[$index] = $index;
			}
			$key = join("','",array_keys($mas));
			$values = join("','",array_keys($masiv));
			echo $key; 
			echo $values; 			
			$query = mysql_query("INSERT INTO `camp` ('".$keys."') VALUES('','".$values."','unchecked')");
Что мне сделать если не все значения в форме вводятся (являются обязательными)? Запрос тогда в базу не проходит.
Насколько я понимаю нужно из массива $mas[$index] удалить те поля которые нулевые, но технически это реализовать как не соображу.
Подскажите?
 
Назад
Сверху