если пустое значение $ _POST присваивает значение в цикле foreach

Привет, хочу создать программу, которая создает опросы. Я не мог понять, как я могу присвоить значение для вопроса, который остается без ответа. Спасибо за помощь.

$dizi = array(); foreach ( $_POST as $key => $value){ if(empty($_POST)){ $_POST="bos"; } $dizi[$key] = "'".$value."'"; } 

Ваш код не имеет смысла, попробуйте следующее:

 $dizi = array(); foreach($_POST as $key => $value) { if (empty($value)) { $value = 'your value'; } $dizi[$key] = $value; } 

$ _POST – ассоциативный массив. Таким образом, вы можете получить к нему доступ:

 $bla = $_POST['bla']; 

То, что вы пытаетесь сделать, это установить весь массив на строку, которая не работает. Вы должны установить новое значение при сохранении его в массив $ dizi.

 $dizi = array(); foreach($_POST as $key => $value) { $newValue = $value; if (empty($value)) { $newValue = 'bos'; } $dizi[$key] = $newValue; unset($newValue); } с $dizi = array(); foreach($_POST as $key => $value) { $newValue = $value; if (empty($value)) { $newValue = 'bos'; } $dizi[$key] = $newValue; unset($newValue); } 

Но это проверяет только пустую строку ответа. Таким образом, это работает только в том случае, если все вопросы являются обязательными.

Если я правильно понял вас, то вы пытаетесь сделать это:

 foreach ( $_POST as $key => $value ) { if(empty($value)) $_POST[$key] = 'This is an unanswered question!'; } 

Но это не может работать из-за того, что пустые значения не отправляются из формы.

Откуда вы знаете, что есть «неотвеченный» вопрос, если он не был отправлен из формы? Вы должны начать с списка вопросов (которые не могут быть подделаны пользователем и определены на стороне сервера) и проверьте, что ответ для каждого из них существует в $ _POST. Если нет – назначьте все, что вы хотите, для пропущенных ответов.

Попробуй это:

 if(isset($_POST) && (!empty($_POST))){ foreach ( $_POST as $key => $value ) { if(empty($value)){ $_POST="bos"; } else{ //put your code } } }