[英]Add items to the array through a form using Php
我需要通过我制作的网站上的表单将项目添加到我现有的数组中。 基本上,一旦我在表单上提交了一些内容,它就需要将项目添加到数组中,我只能使用 php 和 html 来解决这个问题。
我尝试了array_push,但它没有给我我需要的东西,因为它不使用表单
<form action="" method="post">
<input type="text" name="boodschappen"><br><br>
<input type="submit" value="Verstuur">
</form>
<ul>
<?php
$boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];
foreach ($boodschappen as $boodschap) {
echo "<li>".$boodschap."</li>";
}
?>
</ul>
</body>
</html>
<?php
$post = $_POST;
$boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];
$result = array_merge($post, $boodschappen);
foreach ($result as $item) {
echo "<li>".$item."</li>";
}
<?php
$a=array("red","green");
array_push($a,"blue","yellow");
echo "<pre>";
print_r($a);
?>
也许像这样?
<html>
<head><title></title></head>
<body>
<form action="" method="post">
<input type="text" name="boodschappen"><br><br>
<input type="submit" value="Verstuur">
</form>
<ul>
<?php
$boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];
if( $_SERVER['REQUEST_METHOD']=='POST' && !empty( $_POST['boodschappen'] ) ){
$boodschappen=array_merge( $boodschappen, explode(' ', $_POST['boodschappen'] ) );
}
foreach( $boodschappen as $boodschap ) {
echo "<li>".$boodschap."</li>";
}
?>
</ul>
</body>
</html>
要使用持久性更新数组,您可以使用 session 变量,如下所示:
<?php
session_start();
if( !isset( $_SESSION['boodschappen'] ) ){
$_SESSION['boodschappen']=["aardappelen","aardbeien","3 pakken melk","yoghurt"];
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="" method="post">
<input type="text" name="boodschappen"><br><br>
<input type="submit" value="Verstuur">
</form>
<ul>
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' && !empty( $_POST['boodschappen'] ) ){
$items=explode(' ', $_POST['boodschappen'] );
foreach( $items as $item )$_SESSION['boodschappen'][]=$item;
}
foreach( $_SESSION['boodschappen'] as $boodschap ) {
echo "<li>".$boodschap."</li>";
}
?>
</ul>
</body>
</html>
如果我正确理解您的代码,您将需要某种持久存储来存储列表中所有先前提交的内容。 数据库将是长期存储的理想选择。 Session将是最低要求:
<?php
session_start();
if (!isset($_SESSION['past_submission']) || !is_array($_SESSION['past_submission'])) {
$_SESSION['past_submission'] = [];
}
if (!empty($_POST) && isset($_POST['boodschappen']) && !empty(trim($_POST['boodschappen']))) {
array_push($_SESSION['past_submission'], $_POST['boodschappen']);
}
$past_submission = $_SESSION['past_submission'];
?>
<html>
<body>
<form action="" method="post">
<input type="text" name="boodschappen"><br><br>
<input type="button" value="Verstuur">
</form>
<ul>
<?php
$boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];
array_push($boodschappen, ...$past_submission);
foreach ($boodschappen as $boodschap) {
echo "<li>".$boodschap."</li>";
}
?>
</ul>
</body>
</html>
请注意,Session 仅适用于访客 session。 其他访问者或您无法获得这些数据。
如前所述,您可能需要一个MariaDB / MySQL / PostgreSQL来长期存储提交。 您可能需要使用PDO将数据插入数据库或从数据库中检索数据。
<?php session_start(); ?>
<ul>
<?php
if (!empty($_POST['submit'])) {
$_SESSION['boodschappen'][] = $_POST['boodschap'];
foreach ($_SESSION['boodschappen'] as $boodschap) {
echo "<li>".$boodschap."</li>";
}
} else {
$_SESSION['boodschappen'] = [];
}
?>
</ul>
<form action="" method="post">
<input type="text" name="boodschap"><br>
<input type="submit" name="submit" value="Verstuur">
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.