2013-11-14 3 views
0

Я новичок в php. У меня есть сценарий jQuery, который будет генерировать новые элементы. Пользователь нажимает кнопку submit и берется на страницу2.php. Вот где мне нужен php-цикл, чтобы определить, сколько текстовых входов создается пользователем.php сохраняет зацикленные данные в массиве

page1.php

<!DOCTYPE html> 
<html> 
<head> 
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'> </script> 
<script type='text/javascript'> 
$(document).ready(function() { 
    $('#btn').click(function() { 
     var x = parseInt($('#hidtxt').val()) + (1*1); 
     var z = "<input type='text' id='txt" + x + "' name='txt" + x + "' size='10'/>"; 
     $('#main').append(z); 
     $('#hidtxt').val(x); 
    }); 
}); 
</script> 
</head> 
<body> 
    <form name='myform' action='page2.php' method='post'/> 
    <input type='hidden' value='1' name='hidtxt' id='hidtxt'/> 
    <div id='main'> 
     <input type='text' id='txt1' name='txt1' size='10'/> 
    </div> 
    <input type='button' id='btn' name='btn' value='Add Text Box'/> 
    <input type='submit' value='Submit' id='subBtn' name='subBtn'/> 
    </form> 
</body> 
</html> 

Тогда page2.php

<?php 
    //CREATE LOOP TO POST ALL TEXT INPUTS 
    $val1 = $_POST['txt1']; 
    $val2 = $_POST['txt2']; 
    .... 
    .... 
    $valx = $_POST['txtx']; 


?> 

ответ

5

Дайте имя текстового поля в виде массива, как

<input type='text' id='txt1' name='txt[]' size='10'/> 

, а затем получить его как

print_r($_POST['txt']); 

Тогда вы получите массив в текстовом поле values.Orelse вы можете использовать цикл как

for($i=0;$i<$cnt;$i++) {   
    $val[$i] = $_POST['txt'][$i]; 
} 

Здесь вам нужно получить количество от общего количества входных полей, которые вы дали для цикла, как $cnt .Maintain hiddenfield с начальным значением 1 и всякий раз, когда вы нажимаете кнопку Add text box, вам необходимо увеличить его, а после отправки формы вы можете получить значение $cnt как количество полей ввода, которое находится в скрытом поле.

+0

Таким образом, это передает каждый элемент в массив. Как вызвать определенное значение из массива? – bagofmilk

+0

Если вы хотите вызвать конкретный вход, вы можете использовать его как '$ _POST ['txt'. $ Id_of_input]' – Gautam3164

+1

sweet. Это потрясающе. спасибо – bagofmilk

2

Подсчитайте количество входов с Jquery на первой странице, создайте скрытое поле ввода, а затем поместите это значение в скрытое поле. На следующей странице читайте, что с помощью PHP.

1

Один из способов - иметь скрытое текстовое поле внутри той же формы. Это будет содержать количество элементов ввода, которые были сгенерированы (для этого может использоваться простой простой JavaScript). Итак, на второй странице php вы сначала узнаете, сколько элементов было сгенерировано, а затем используйте цикл for, чтобы получить их значения в массив, который вы можете проанализировать по желанию. (Набрав это с моего телефона, так что не удалось отправить образец кода. Но должно быть достаточно просто.)

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