如何在PHP中添加新阵列

问题描述:

如何将新阵列添加到用户会话或相同/现有会话中。我有以下两个PHP文件。如何在PHP中添加新阵列

  1. fruits.php

    <?php 
    <form action="processfruits.php" method="POST"> 
    
    <select name="myfruit_list[]"> 
        <option value="apples">Apples</option> 
        <option value="oranges">Oranges</option> 
    </select> 
    
    <select name="myfruit_list[]"> 
        <option value="grapes">Grapes</option> 
        <option value="pears">Pears</option> 
    </select> 
    
    <input type="submit" value="Confirm Order"> 
    
    </form> 
    ?> 
    
  2. processfruits.php

    <?php 
    
    $data = array(); 
    $data = $_POST['myfruit_list']; 
    
    echo "Number of Fruit Bowls: " . count($data) . "<br />"; 
    
    foreach($data as $selection => $name) 
    { 
        echo "<br>" . $selection . ":  "; 
        $string = implode(", ", $name); 
        echo $string . "<br />"; 
    } 
    
    ?> 
    

我希望实现用于下相同的用户会话中的每个处理/确认输出:

Number of Fruit Bowls: 4 

    Data 1: Apples, Grapes 
    Data 2: Oranges, Pears 
    Data 3: Apples, Pears 
    Data 4: Oranges, Grapes 

如何在每次用户提交确认订单按钮而不覆盖第一个订单确认或数组时,让数组看起来像上面那样。

+8

你的第一个php文件应该会给你带来很多错误。 – Rizier123

+2

'fruits.php'不是PHP。它是PHP标签之间的HTML,如果您在启用错误报告的情况下运行它,它将会失败壮观。 – 2015-07-19 01:34:25

+0

对不起,第一个文件是一个带有php扩展名的HTML文件。主要原因是我必须在HTML标签之前使用session_start()和另一个包含文件(php)。我没有直截了当地想。 – Harris

我想你想要这样的:

<?php 
session_start(); 

if($_SERVER["REQUEST_METHOD"]=="POST") { 
    $_SESSION["data"]=array_merge($_POST['myfruit_list'],$_SESSION["data"]); 
    $data = array(); 
    $data = $_SESSION["data"]; 
    $t=2; 
    echo "Number of Fruit Bowls: " . count($data)/2 . "<br />"; 

    foreach($data as $selection => $name) { 
     if($t%2==0) { 
      echo "<br>"; 
      echo "data : ".($t/2)." "; 
     } 
     else { 
      echo ","; 
     } 

     echo $name; 
     $t++; 
    } 
} 
else { 
    $_SESSION["data"]=[]; 
} 
?> 

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST"> 
    <select name="myfruit_list[]"> 
     <option value="apples">Apples</option> 
     <option value="oranges">Oranges</option> 
    </select> 
    <select name="myfruit_list[]"> 
     <option value="grapes">Grapes</option> 
     <option value="pears">Pears</option> 
    </select> 
    <input type="submit" value="Confirm Order"> 
</form> 

更新的要求......

<?php 
    session_start(); 

    if($_SERVER["REQUEST_METHOD"]=="POST") { 


    if(isset($_POST["del"])) 
    {  
    $oft=$_POST["del"]; 
    unset($_SESSION["data"][2*$oft-1]); 
    unset($_SESSION["data"][(2*$oft-2)]); 

    } 
    else 
    { 

    $_SESSION["data"]=array_merge($_POST['myfruit_list'],$_SESSION["data"]); 

    } 

    $t=2; 
    $data=$_SESSION["data"]; 
    echo "Number of Fruit Bowls: " . count($data)/2 . "<br />"; 

    foreach($data as $selection => $name) { 
    if($t%2==0) { 
     echo "<br>"; 
     echo "data : ".($t/2)." "; 
    } 
    else { 
     echo ","; 
    } 

    echo $name; 
    $t++; 


    } 
    } 

    else { 
$_SESSION["data"]=[]; 
    } 
    ?> 

     <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST"> 
<select name="myfruit_list[]"> 
    <option value="apples">Apples</option> 
    <option value="oranges">Oranges</option> 
</select> 
<select name="myfruit_list[]"> 
    <option value="grapes">Grapes</option> 
    <option value="pears">Pears</option> 
</select> 
<input type="submit" value="Confirm Order"> 
     </form> 


    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST"> 
    <input type="text" placeholder="row number to be deleted..." name="del"> 
    <input type="submit" value="Delete row"> 
    </form> 

ok..one更form..add此代码相同的页面.. 。

<form action="add.php" method="POST"> 
    <input type="submit" value="add"/> 
    </form> 

add.php ........

<?php 

    session_start(); 

    if($_SERVER["REQUEST_METHOD"]=="POST") 
    { 
    [email protected]_connect("localhost","root","") or die("could not connect to database"); 
    [email protected]_select_db("stack",$conn) or die("could not select database"); 

     $data=$_SESSION["data"]; 
    $temp="";$t=0; 

    foreach($data as $selection => $name) { 


    if($t%2==0) { 
    $temp=$name; 
    echo $temp; 
    } 
    else { 

    $id=rand(1000,9999); 
    $row=ceil(($t/2)); 
    $sql="insert into st(id,row,fruit1,fruit2) values(\"$id\",\"$row\",\"$name\",\"$temp\")"; 
    $res=mysql_query($sql,$conn) or die("could not execute "); 


     }  
     $t++; 
    } 

    } 
    ?> 
+0

非常感谢。它像一个魅力。 – Harris

+0

为了让这个过程更上一层楼,如果用户希望从数组中移除一对特定的水果,我如何移除水果数组? – Harris

+0

我已经更新了答案.....请让我知道如果我的解决方案帮助你..... –