2013-10-08 6 views
0

Я использовал Javascript с PHP. В моей форме HTML у него есть раскрывающееся меню (опция), чтобы пользователь мог выбрать no. авторов. В соответствии с выбранным номером динамические поля ввода будут отображаться под именами авторов. Итак, вот мой код HTML-кода.PHP Получить значения нескольких текстовых полей ввода в цикле

<form method="post" action="" onsubmit=""> 
No. of Authors:<select id="steps_number" name="AuthorNo"> 
        <option value="1" selected="selected" >1</option> 
        <option value="2">2</option> 
        <option value="3">3</option> 
        <option value="4">4</option> 
        <option value="5">5</option> 
       </select><br/> 
Author Names:<div id="inputBoxes"></div><br/> 
<button type="submit" name="submit"></form> 

Мой javascript-код для отображения динамических текстовых полей ввода в соответствии с выбранным номером автора;

<script language="javascript"> 
    $(document).ready(function(){ 
     $("#steps_number").change(function() { 
      var inputNum = $("#steps_number").val(); 

      var inputCode = ""; 
      for(i=0; i<inputNum; i++) { 
       inputCode += "<p class=\"inputBox\"><input name='inp' id=\"inputBox_" + i + "\" size=\"20\" type=\"text\"></p>" 
      } 
      $("#inputBoxes").html(inputCode); 
     }); 
    }); 
</script> 

Код PHP для получения значений при его отправке;

<?php 
if(isset($_POST['submit'])) { 
$AuthorNo=strip_tags($_POST['AuthorNo']); 
$AName=strip_tags($_POST['inp']);} 

Если число авторов не выбрано как 2, будут отображаться два входных текстовых поля. Если я отправлю его с двумя разными значениями в каждом поле ввода, в базу данных будет вставлено только значение 1-го поля ввода. Скажите, пожалуйста, чтобы указать поля ввода в цикле по-разному и способ вызвать их значения? Спасибо.

+1

'name =" inp [] "' - это даст вам массив. – CBroe

ответ

1

Ввод может иметь имя типа name=inpAuthor[], это отправит массив на PHP.

+0

Если я даю имя ввода как name = "inp [i]" и в php-коде; $ AName = strip_tags ($ _ POST [ 'INP [я]']); он говорит undefined index: inp [i] –

+0

Используйте цикл foreach для доступа к значениям и не используйте значения для индекса. это должно быть просто 'name = inp []' – nilobarp

+0

Это сработало! Большое спасибо. Я изменил свой последний код следующим образом: '";} \t}?> ' –

Смежные вопросы