如何在PHP中添加新阵列
问题描述:
如何将新阵列添加到用户会话或相同/现有会话中。我有以下两个PHP文件。如何在PHP中添加新阵列
-
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> ?>
-
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
如何在每次用户提交确认订单按钮而不覆盖第一个订单确认或数组时,让数组看起来像上面那样。
答
我想你想要这样的:
<?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++;
}
}
?>
你的第一个php文件应该会给你带来很多错误。 – Rizier123
'fruits.php'不是PHP。它是PHP标签之间的HTML,如果您在启用错误报告的情况下运行它,它将会失败壮观。 – 2015-07-19 01:34:25
对不起,第一个文件是一个带有php扩展名的HTML文件。主要原因是我必须在HTML标签之前使用session_start()和另一个包含文件(php)。我没有直截了当地想。 – Harris