Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从循环中动态创建字段名的Post表单值?_Php_Mysql_Loops_Post_Foreach - Fatal编程技术网

Php 从循环中动态创建字段名的Post表单值?

Php 从循环中动态创建字段名的Post表单值?,php,mysql,loops,post,foreach,Php,Mysql,Loops,Post,Foreach,我有一个页面,它是根据用户在上一个页面上提交的信息动态创建的。例如,在第1页,用户输入一些部门名称。他们想进多少就进多少。在第2页,为第一页输入的每个部门创建了多个部分。在这些部分中的每一部分都将是表单,我目前已经对其进行了设置,以便使用变量$a创建表单的名称。我需要知道如何发布这些项目一旦提交按钮在每个部分被点击。我试过几种不同的方法,但都不管用。我想要它,这样只有与提交按钮的$a值相同的$a值的项目才会被发布 $departmentSql = "SELECT * FROM b_dep

我有一个页面,它是根据用户在上一个页面上提交的信息动态创建的。例如,在第1页,用户输入一些部门名称。他们想进多少就进多少。在第2页,为第一页输入的每个部门创建了多个部分。在这些部分中的每一部分都将是表单,我目前已经对其进行了设置,以便使用变量$a创建表单的名称。我需要知道如何发布这些项目一旦提交按钮在每个部分被点击。我试过几种不同的方法,但都不管用。我想要它,这样只有与提交按钮的$a值相同的$a值的项目才会被发布

    $departmentSql = "SELECT * FROM b_departments WHERE loc_id='$locid' AND b_id =     '$bid'";
    $departmentResults = mysql_query($departmentSql,$con);

$a = 0;

while ($departmentRow = mysql_fetch_array($departmentResults)) {

$department = $departmentRow['b_dep_name'];
$departmentID = $departmentRow['dep_id'];
$b_departmentID = $departmentRow['b_dep_id'];
$a++;

echo "

<div id=depDiv>
<div id=depDivHeader>
".$department."
</div>
";

$areaSql = "SELECT * from areas WHERE dep_id = $departmentID ORDER BY area_name ASC";
$areaSqlResult = mysql_query($areaSql);
?>

<br />
<input type="hidden" name="bdep<?php echo $a;?>" value="<?php echo $b_departmentID; ?>" />
Add Area: 
<select name="dep_area<?php echo $a;?>" type="menu">
    <option value=""></option>
    <?php while($areaRows=mysql_fetch_assoc($areaSqlResult)){?>
    <option value="<?php echo "".$areaRows['area_id'].",".$areaRows['area_name']."" ?>"><?    php echo $areaRows[       'area_name'] ?></option>
<?php }
?>
</select>
&nbsp;&nbsp;
<input type="submit" name="areaSub<?php echo $a;?>" value="Add" />

<?php
echo "</div>"; 
}
?>   


我不确定我是否完全理解。。。但是你遇到的问题是,当用户点击“提交”按钮获取给定的一组值(给定的部门)时,它会提交页面上的所有数据吗?您只希望提交该特定区域的输入字段

用标记切掉表单:

 <form> </form>

因此,您将有多个区域:

 while(...) {
    <form method="..." name="form $a">
       <input name="... $a">
       <input name="... $a">
        ...
       <submit>
   </form>
}
while(…){
...
}

(显然这是伪代码,请相应调整)

编辑:如果它是一个包含多个部分的表单,并且您不想在发布后删除不需要的表单数据,那么我认为您必须在发布到服务器之前使用jQuery来修剪表单值,因此,请参阅下面我的jQuery部分,以了解如何只发布所选按钮的数据

简短的回答是使用提交按钮的名称/值属性,并在发布后对其进行评估。具有相同名称的多个按钮可以具有不同的值,并且这些值不必是标签

例如:

<form id='<?php echo $a; ?>'>
    <input type='text' name='in1'>
    <input type='text' name='in2'>
    <button type='submit' name='submit' value='<?php echo $a; ?>'>Add</button>
</form>
...
<form id='<?php echo $a; ?>'>
    <input type='text' name='in1'>
    <input type='text' name='in2'>
    <button type='submit' name='submit' value='<?php echo $a; ?>'>Add</button>
</form>
...
<?php
    # _POST:
    if (isset($_POST['submit']) && $_POST['submit'] == '1') {
        echo 'Department 1';
    }
    if (isset($_POST['submit']) && $_POST['submit'] == '2') {
        echo 'Department 2';
    }
?>

您还可以使用jQuery获取某个Div ID中包含的所有元素


然后创建多个表单。每个表格只提交自己的信息。您可以用
[]
来命名项目,而不是用数字。您介意稍微详细说明一下jQuery选项吗?我想这对我来说是可行的,我只是还不确定如何编写PHP脚本,其中会显示“if(isset($\u POST['areaSub$a']){}”,以便它识别$a变量。
 <form> </form>
 while(...) {
    <form method="..." name="form $a">
       <input name="... $a">
       <input name="... $a">
        ...
       <submit>
   </form>
}
<form id='<?php echo $a; ?>'>
    <input type='text' name='in1'>
    <input type='text' name='in2'>
    <button type='submit' name='submit' value='<?php echo $a; ?>'>Add</button>
</form>
...
<form id='<?php echo $a; ?>'>
    <input type='text' name='in1'>
    <input type='text' name='in2'>
    <button type='submit' name='submit' value='<?php echo $a; ?>'>Add</button>
</form>
...
<?php
    # _POST:
    if (isset($_POST['submit']) && $_POST['submit'] == '1') {
        echo 'Department 1';
    }
    if (isset($_POST['submit']) && $_POST['submit'] == '2') {
        echo 'Department 2';
    }
?>
<div id='<?php echo $a; ?>'>

    <input type='text' name='in1'>
    <input type='text' name='in2'>

    <input type="submit" name="areaSub<?php echo $a;?>" value="Add" />
</div>
$('#<?php echo $a; ?>').submit(function() {
    do_something_with_form_$a
});