gpt4 book ai didi

PHP Array 不添加来自 HTML 表单的新元素

转载 作者:行者123 更新时间:2023-12-05 08:10:46 24 4
gpt4 key购买 nike

PHP 和 Web 开发的新手。我觉得问这个问题很愚蠢,但我已经浏览了几个小时的答案,却找不到任何东西。如果之前已回答此问题,请链接我...谢谢您的帮助!

描述:使用 HTML 表单,将值作为数组传递给 PHP 数组。第一次工作,但当我返回表单并尝试添加另一组值时,它会覆盖索引 0 处的值。

我尝试过的:array_push($log, $_POST["info"]) 和 $log[] = $_POST["info"]; = 相同的结果,0 处的索引被覆盖。

HTML 代码

 <?php $date = date('d/m/Y h:i', time());?>
<form class="contact-form" action="/server.php" method="post">
<input type="text" name="info[]" placeholder="Full name" required>
<textarea name="info[]" rows="5" cols ="80" placeholder="Message" required></textarea>
<input type="hidden" name="info[]" id="date-time" value="<?php echo $date; ?>">
<button type="submit" name="submit">Submit Message</button>
</form>

PHP 代码

<?php
$log = array();

if(isset($_POST["info"])){
array_push($log, $_POST["info"]);
}

var_dump($log);
?>

当前结果


array(1) {
[0]=>
array(3) {
[0]=>
string(12) "Blunder King"
[1]=>
string(28) "Blundering all the day long."
[2]=>
string(16) "27/11/2021 02:48"
}
}

当我尝试向 $log 数组添加另一个值时,它被覆盖而不是移动新索引。

array(1) {
[0] =>
array(3) {
[0]=>
string(12) "Blunder King"
[1]=>
string(28) "Blundering all the day long."
[2]=>
string(16) "27/11/2021 02:48"
}, // would expect new array values at index 1. But instead I get these values overwriting index 0 above.
[1] =>
array(3) {
[0]=>
string(12) "Blunder Queen"
[1]=>
string(30) "Blundering all the day long."
[2]=>
string(16) "27/11/2021 02:51"
}
}

最佳答案

只需稍微更改您的代码即可使用 SESSION:

<?php  session_start();
$date = date('d/m/Y h:i', time());?>

<form class="contact-form" action="server.php" method="post">
<input type="text" name="info[]" placeholder="Full name" required>
<textarea name="info[]" rows="5" cols ="80" placeholder="Message" required></textarea>
<input type="hidden" name="info[]" id="date-time" value="<?php echo $date; ?>">
<button type="submit" name="submit">Submit Message</button>
</form>

对于 server.php

<?php session_start();

if ( ! isset($_SESSION["log"])){
$_SESSION["log"] = array();
}

if(isset($_POST["info"])){
array_push($_SESSION["log"], $_POST["info"]);
}

var_dump($_SESSION["log"]);
?>

或者简单地将两者合并并运行它,您将在一个 php 中看到结果:

<?php 
session_start();
?>

<?php $date = date('d/m/Y h:i', time());?>
<form class="contact-form" action="#" method="post">
<input type="text" name="info[]" placeholder="Full name" required>
<textarea name="info[]" rows="5" cols ="80" placeholder="Message" required></textarea>
<input type="hidden" name="info[]" id="date-time" value="<?php echo $date; ?>">
<button type="submit" name="submit">Submit Message</button>
</form>


<?php

if ( ! isset($_SESSION["log"])){
$_SESSION["log"] = array();
}

if(isset($_POST["info"])){
array_push($_SESSION["log"], $_POST["info"]);
}

var_dump($_SESSION["log"]);
?>

关于PHP Array 不添加来自 HTML 表单的新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70131733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com