2015-11-27 7 views
2

У меня есть страница с 2 формами. Это для вставки в db с использованием PHP/PDO. Проблема, с которой я сталкиваюсь, заключается в том, что оператор IF на странице вставки создает ошибку, даже если я не нажал кнопку отправки. Попробовали несколько способов с $ _POST isset /! == 0 и так далее. Пока не повезло.

Может возникнуть проблема с jQuery/FORM-combo? Может быть, это вызывает $ _POST?

JQuery для выбирающих форм:

<script type="text/javascript"> 
$(document).ready(function() { 
$('#formSel').change(function() { 
var id = $(this).val(); 
if(id != '-') 
{ 
    $('form').hide(); 
    $('#form'+id).show(); 
    //$('#myModal').modal('show'); 
} 
}); 
}); 
</script> 

Формы устанавливаются следующим образом:

<div> 
<select class="form-control input-small" id="formSel"> 
<option value="-">Choose category</option> 
<option value="One">One</option> 
<option value="Two">Two</option> 
</select> 
</div> 

<!-- Form One --> 
<form id="One" style="display:none" method="POST" action="insert.php"> 
<input type="text" id="aaa" placeholder="aaa"> 
<input type="text" id="bbb" placeholder="bbb"> 
<button type="submit" value="btn-One">Submit</button> 
</div> 

<!-- Form Two --> 
<form id="One" style="display:none" method="POST" action="insert.php"> 
<input type="text" id="ccc" placeholder="ccc"> 
<input type="text" id="ddd" placeholder="ddd"> 
<button type="submit" value="btn-Two">Submit</button> 
</div> 

Чтобы вставить данные у меня есть вторая страница (insert.php), содержащий PHP/PDO , Это настроено для выполнения при нажатии кнопки отправки:

if ($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($_POST['btn-One']))) { 
    //execute code 
} 
else { 
    echo 'Error submit One'; 
} 

if ($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($_POST['btn-Two']))) { 
    //execute code 
} 
else { 
    echo 'Error submit Two'; 
} 

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

+5

Недопустимый атрибут 'name' отсутствует в' форме и элементе формы' – Saty

ответ

0

Прежде всего вы пропустили имя атрибут для входных элементов ,

А также вы пропустили закрытие формы тегов.

И здесь я включил два скрытых элементов (selectedForm1 & selectedForm2), чтобы определить, какая форма была отправлена.

И в сценарии, замените $('#form'+id).show(); с $('#'+id).show();

SCRIPT

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('form').hide(); 
    $('#formSel').change(function() { 
     var id = $(this).val(); 
     if(id != '-') 
     { 
      $('form').hide(); 
      $('#'+id).show(); 
      //$('#myModal').modal('show'); 
     } 
    }); 
}); 
    </script> 

HTML

<div> 
<select class="form-control input-small" id="formSel"> 
<option value="-">Choose category</option> 
<option value="One">One</option> 
<option value="Two">Two</option> 
</select> 
</div> 
<div> 
<!-- Form One --> 
<form id="One" method="POST" action="insert.php"> 
<input type="hidden" id="selectedForm1" name="selectedForm1"> 
<input type="text" id="aaa" name="aaa" placeholder="aaa"> 
<input type="text" id="bbb" name="bbb" placeholder="bbb"> 
<button type="submit" value="btn-One" >Submit</button> 
</form> 
</div> 
<div> 
<!-- Form Two --> 
<form id="Two" method="POST" action="insert.php"> 
<input type="hidden" id="selectedForm2" name="selectedForm2"> 
<input type="text" id="ccc" name="ccc" placeholder="ccc"> 
<input type="text" id="ddd" name="ddd" placeholder="ddd"> 
<button type="submit" value="btn-Two">Submit</button> 
</form> 
</div> 

PHP

if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST)) { 
    if ((isset($_POST['selectedForm1']))) { 
     //execute code 
    } else { 
     echo 'Error submit One'; 
    } 
    if ((isset($_POST['selectedForm2']))) { 
     //execute code 
    } else { 
     echo 'Error submit Two'; 
    } 
} 
+0

Спасибо, что поделились, @Sanjay Kumar N S, Но помимо отсутствующих элементов формы, почему он отправляется без нажатия кнопки отправки? Попробовав свое предложение, по-прежнему получайте сообщение об ошибке при открытии страницы. – ChrVik

+0

Для меня он отправляется только после нажатия кнопки отправки. Какая ошибка вы получаете? –

+0

На странице с формами я включаю php – ChrVik

2

Возможно, вам недостает name и заполните </div> с помощью </form>. И идентификатор формы тоже!

<div> 
<select class="form-control input-small" id="formSel" name="formSel"> 
<option value="-">Choose category</option> 
<option value="One">One</option> 
<option value="Two">Two</option> 
</select> 
</div> 

<!-- Form One --> 
<form id="formOne" style="display:none" method="POST" action="insert.php"> 
     ^
<input type="text" id="aaa" name="aaa" placeholder="aaa"> 
          ^
<input type="text" id="bbb" name="bbb" placeholder="bbb"> 
          ^
<button type="submit" value="btn-One" name="btn-One">Submit</button> 
            ^
</form> 
^^^^^^^ 

<!-- Form Two --> 
<form id="formTwo" style="display:none" method="POST" action="insert.php"> 
     ^
<input type="text" id="ccc" name="ccc" placeholder="ccc"> 
          ^
<input type="text" id="ddd" name="ddd" placeholder="ddd"> 
          ^
<button type="submit" value="btn-Two" name="btn-Two">Submit</button> 
            ^
</form> 
^^^^^^^ 
+0

Недопустимое имя тега - это просто плохая вырезка/вставка, моя ошибка – ChrVik

+0

И форму тоже! – Thamilan

+0

Форма id, которую я пропустил, вы правы – ChrVik

0

Это может помочь, если вы закрыли форму, а также добавили атрибут name к элементам.

<!-- Form One --> 
<form id="One" style="display:none" method="POST" action="insert.php"> 
<input type="text" id="aaa" placeholder="aaa"> 
<input type="text" id="bbb" placeholder="bbb"> 
<button type="submit" value="btn-One">Submit</button> 
</div> 

становится:

<!-- Form One --> 
<form id="One" style="display:none" method="POST" action="insert.php"> 
<input type="text" id="aaa" placeholder="aaa" name="aaa"> 
<input type="text" id="bbb" placeholder="bob" name="bbb"> 
<button type="submit" value="btn-One" name="btn-One">Submit</button> 
</form> 

и

<!-- Form Two --> 
<form id="One" style="display:none" method="POST" action="insert.php"> 
<input type="text" id="ccc" placeholder="ccc"> 
<input type="text" id="ddd" placeholder="ddd"> 
<button type="submit" value="btn-Two">Submit</button> 
</div> 

становится:

<!-- Form Two --> 
<form id="One" style="display:none" method="POST" action="insert.php"> 
<input type="text" id="ccc" placeholder="ccc" name="ccc"> 
<input type="text" id="ddd" placeholder="ddd" name="ddd"> 
<button type="submit" value="btn-Two" name="btn-Two">Submit</button> 
</form> 
Смежные вопросы