php将循环数据保存到数组中

时间:2013-11-14 04:46:30

标签: php post for-loop foreach

我是php的新手。我有一个jQuery脚本,将生成新元素。用户单击“提交”并转到page2.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'];


?>

3 个答案:

答案 0 :(得分:5)

将文本框名称指定为类似

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

然后就像

一样
print_r($_POST['txt']);

然后你将获得文本框值的数组。可以使用循环

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

在这里,您需要将为循环指定的总输入字段数量计为$cnt。维护一个隐藏字段,初始值为1,并且每当您点击Add text box时按钮需要递增,在提交表单后,您可以获得$cnt值作为隐藏字段中的输入字段数。

答案 1 :(得分:2)

在第一页中使用Jquery计算输入数量创建隐藏输入字段,然后将该值放入隐藏字段中。在下一页中,使用PHP阅读。

答案 2 :(得分:1)

一种方法是在同一表单中包含隐藏文本字段。这将包含已生成的输入元素的数量(可以使用简单的纯JavaScript)。所以在第二个php页面上,首先要找出生成了多少元素,然后使用for循环将它们的值放入一个可以根据需要解析的数组中。 (从我的手机输入,所以无法发布代码示例。但应该很容易。)