Перейти к публикации
xeon

DataLife Engine Php checkbox

Рекомендованные сообщения

xeon

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

 

form1.php

<form action="form2.php">
<input name="chec1" type="checkbox" value="one">One<br />
<input name="chec2" type="checkbox" value="two">Two<br />
</form>

 

 

 

form2.php

<form action="action.php">
<input name="check[]" type="checkbox" value="one" <? if(isset($_POST['chec1'])){ echo 'checked';} ?> >One<br />
<input name="check[]" type="checkbox" value="two" <? if(isset($_POST['chec2'])){ echo 'checked';} ?> >Two<br />
</form>

 

 

 

<? if(isset($_POST['chec2'])){ echo 'checked';} ?>

, здесь собственно и требуется добавить цикл.

т.е чтоб 'chec2' был заменен на 'chec[]' .

 

p.s Да, я знаю что имена разные, но мне и не нужно чтоб они совпадали))

Изменено пользователем xeon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

form1.php

></pre>
<form action="form2.php">
One

Two

</

(изменил атрибут name)

 

 

 

form2.php

></pre>
<form action="action.php">

 >One


</

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

А удобнее сделать всё в одном файле :)

<?php
   $checkBoxVal = array("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"); // список value чекбоксов

if(! isset($_POST['sel'])){ ?>
<form action="<?=$_SERVER['PHP_SELF']?>">
   <?php foreach($checkBoxVal as $value){ ?>
   <input name="sel[]" type="checkbox" value="<?=$value?>"> <?=$value?><br />
   <?php } ?>
</form>
<?php } else {
$selectedValues = array(); // в этом массиве будут выбранные чекбоксы (значения)
foreach($_POST['sel'] as $val) {
   $selectedValues[] = $val;
}
?>
   <form action="action.php">
   <?php foreach($checkBoxVal as $value){ ?>
       <input name="check[]" type="checkbox" value="<?=$value?>" <?=in_array($value, $selectedValues) ? "checked" : ""?> ><?=$value?><br />
   <?php } ?>
   </form>
<?php } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
xeon

Вообще нечто получилось...Много дублей отмеченных получилось.

Я подправил ошибки типо таких:

 

<?php for($i = 1; $i<=10; $i++) { // 10 - это кол-во чекбоксов ?>

 

<input name="checkbox[]" type="checkbox" >One<br />

 

Но результат 0. Чисто для забавы убрал $i++, у меня страница так и не загрузилась...а комп гудеть ух как стал.

 

UPD. У меня в любом случае формы должны быть на разных, т.к на одной краткая форма, на другой странице полная....мне нужно было при прохождении на продолжить в краткой форме все отмеченные пункты(select,checkbox,text) перенеслись в полную...

 

Я сделал так чтобы всё переносилось, но при назначении name="test1,test2..." чекбоксам валидация работала некорректно...Хотя не пойму, в чем тут связь валидация и поле name у checkbox....т.е если name таким name="test[]" то всё работает нормально.

 

И главное поле value мне изменять нельзя, т.к потом форма идет на почту...

Изменено пользователем xeon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
xeon

, Благодарен, способ отличный https://nevex.pw/public/style_emoticons/default/good_mini.gif.

 

Я сразу внимание не обратил на второй код :) )))

Изменено пользователем xeon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
xeon

, Я чуток изменил код, и почему-то говорит что пустой массив....сделал так

file1.php

 

<?php
$checkBoxVal = array("Страна", "Область", "Город", "Улица"); // список value чекбоксов
if(! isset($_POST['sel'])){
?>
<form action="file2.php" method="POST">
<?php foreach($checkBoxVal as $value){ ?>
<input type="checkbox" name="sel[]" value="<?=$value?>"> <?=$value?><br />
<?php } ?>
<br />
<br />
<input type="submit" name="submit" value="Далее">
</form>
<?php } ?> 

 

file2.php

<?php
$selectedValues = array(); // в этом массиве будут выбранные чекбоксы (значения)
foreach($_POST['sel'] as $val) {
$selectedValues[] = $val;
}
?>
<form action="action.php" method="POST">

<?php foreach($_POST['checkBoxVal'] as $value){ ?>
<input type="checkbox" name="check[]" value="<?=$value?>"> <?=in_array($value, $selectedValues) ? "checked" : ""?> ><?=$value?><br />
<?php } ?>

</form>

 

Ошибка в file2.php,

 

Warning: Invalid argument supplied for foreach() in Z:hometest4.ruwwwphpfile2.php on line 4

Warning: Invalid argument supplied for foreach() in Z:hometest4.ruwwwphpfile2.php on line 11

Изменено пользователем xeon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
xeon

Тему можно закрыть, вопрос решил)

 

,спасибо за помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...