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