Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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 将脚本生成的复选框值设置为多维数组_Php_Multidimensional Array_Submit - Fatal编程技术网

Php 将脚本生成的复选框值设置为多维数组

Php 将脚本生成的复选框值设置为多维数组,php,multidimensional-array,submit,Php,Multidimensional Array,Submit,希望有人能理解这一点 我对php还是一个新手,我被卡住了 我有个问题。。。 我有一个由foreach循环生成的带有复选框的列表,每个复选框都应该有一个多维数组作为其值 <input type='checkbox' name='unit[]' value='multidimensional array' /> 上面的foreach将$var作为字符串而不是带有递增键的$var进行回显 它基本上是一个产品列表,每个产品的内容都在一个数组中,通过复选框可以在可打印列表中添加或删除它们。除

希望有人能理解这一点

我对php还是一个新手,我被卡住了

我有个问题。。。 我有一个由foreach循环生成的带有复选框的列表,每个复选框都应该有一个多维数组作为其值

<input type='checkbox' name='unit[]' value='multidimensional array' />
上面的foreach将$var作为字符串而不是带有递增键的$var进行回显

它基本上是一个产品列表,每个产品的内容都在一个数组中,通过复选框可以在可打印列表中添加或删除它们。除了创建复选框值外,所有操作都正常

value='" . "$" . "unit" . "[" . $i++ . "];'

这将为include中的每个数组创建名称$unit[1],但它会生成一个字符串$unit[1],但不是作为实际数组和它的第一个键。

我的一个朋友帮助我解决了这个问题,我将用有限的知识尽可能回答我自己的问题

如果专业人士能够阅读这个答案并确认它是正确的,那就太好了

数组设置保存在include文件例如(data.php)中:

在实际网页上显示价目表的第一个列表显示循环:

在包含数据文件之后 例如:



我希望这对其他初学者有用,因为我已经为此奋斗了好几天,但我无法理解

更改<代码>值='“$”单位“[”$i++.“];”to
value='“$unit[$i++]”
Thanx@coramba。它现在通过数组:)现在我需要弄清楚的是循环,以便再次重复它…好的,那么。。。所以它传递数组(在源代码中告诉我它是一个数组),但由于某种原因,我无法再次回传传递的数组?它只是呼应了“数组”这个词。用于ECHO if(isset($_POST['unit']){if(is_array($_POST['unit']){foreach($_POST['unit']as$print_unit){if(is_array($print_unit)){foreach($print_unit as$P_unit){ECHO$P_unit;}其他{ECHO“非数组
”;}}
$i = 0;

foreach($unit as $unit_no){
echo"<div class='pricelist-container'>";

if (is_array($unit_no)){

    foreach ($unit_no as $unit_details){

        if (is_array($unit_details)) {

            foreach ($unit_details as $unit_contents){

                if (is_array($unit_contents)){

                    foreach ($unit_contents as $extra){
                        echo $extra;
                    }
                }
                else{
                    echo $unit_contents;
                }
            }
        }

        else{
            echo $unit_details;
        }
    }
}
else{
    echo $unit_no;
}
echo"
$disclaimer
//below is where my problem seems to start.
<p class='fine'> <input type='checkbox' name='unit[]' value='" . "$" . "unit" . "[" . $i++ . "];' checked='checked' /> please uncheck to remove list</p>
<br />
</div>";
}
if(isset($_POST['unit'])){
            if (is_array($_POST['unit'])){
                foreach ($_POST['unit'] as $print_unit){
                    echo $print_unit;
                }
            }
        }
//this loop will echo out the $var[key] as strings. 
value='" . "$" . "unit" . "[" . $i++ . "];'
$Number = 1;

$unit[$Number]['id']="id";
$unit[$Number]['img']="image";
$unit[$Number]['name']="name";
$unit[$Number]['price']=00.00;
$unit[$Number]['contents'][1]="content1";
$unit[$Number]['contents'][2]="content2";
$unit[$Number]['contents'][3]="content3";
$unit[$Number]['contents'][4]="content4.";

$Number = 2;

$unit[$Number]['id']="id";
$unit[$Number]['img']="image";
$unit[$Number]['name']="name";
$unit[$Number]['price']=00.00;
$unit[$Number]['contents'][1]="content1";
$unit[$Number]['contents'][2]="content2";
$unit[$Number]['contents'][3]="content3";
$unit[$Number]['contents'][4]="content4.";

//END OF PRODUCT/UNIT ARRAYS
<!--OPEN FORM-->
<form method='post' action='SCRIPT FILE NAME.php'>

<?php 

  include('data.php'); 

  /*Set INCREMENT.*/
   $i = 1;

  /*DISPLAY LOOP*/
   foreach ($unit as $UNIT) 
   //ECHO SOME HTML FOR A LAYOUT CONTAINER DIV
     echo "<div class='####'>";
     //image
     echo "<img class='#' src='location_folder_details/".$UNIT['img']."'>";
     //name
     echo $UNIT['name'];
     //price
     echo "Dollar/Pound symbol".number_format ($UNIT['price'] , 2, '.' , ' ' );
     //contents

     //SECOND ARRAY LOOP FOR CONTENT
       if (is_array($UNIT['contents'])){
         foreach ($UNIT['contents'] as $unit_contents){
           echo "<li>".$unit_contents."</li>"; 
          }
        }
        else {
          echo "NO DETAILS AVAILABLE";
        }

     echo "<p class='fine' ><input type='checkbox' name='unit_$i' value='".$UNIT['id']."' checked='checked'> please uncheck to remove.</p>";
  //CLOSE HTML LAYOUT CONTAINER DIV.
   echo "</div>";
  //Increment $i
   $i ++;
  }
  //ADD HIDDEN FIELD TO REMEMBER INCREMENT 
   echo "<input type='hidden' name='count' value='$i'>";
?>

<!--ADD SUBMIT AND END FORM-->
 <input class='send' action='###.php' type='submit' name='NAME' value='SUBMIT'  />
 </form>
//ADD INCLUDE FILE 
include ('data.php');

//POST HIDDEN COUNT FIELD
$count = $_POST['count'];
//RE-SET INCREMENT 
$i = 1;

<?php    
  while ($i < $count){
    $var_name = "unit_$i";

  if (isset($_POST[$var_name])) {
    // The tickbox "value", is the UNIT ID... Check include.php
      $unit_id = $_POST["$var_name"];

  foreach ($unit as $UNIT) {
        if ($UNIT['id'] == $unit_id) {
      //HTML LAYOUT ECHO
           echo "<div class='####'>";
      //image
           echo "<img class='####' src='LOCATION/PATH/".$UNIT['img']."'>";
      //name
       echo $UNIT['name'];
      //price
        echo "DOLLAR/POND SYMBOL".number_format ($UNIT['price'] , 2, '.' , ' ' );

      //SECOND ARRAY LOOP FOR CONTENT
           if (is_array($UNIT['contents'])){
             foreach ($UNIT['contents'] as $unit_contents){
              //CONTENTS
               echo "<li>".$unit_contents."</li>"; 
                  }
           }
           else {
             echo "NO DETAILS AVAILABLE";
           }
           //HTML LAYOUT ECHO
             echo "</div>";
          }

        }
    }
    $i++;
  }
?>