在编写 php 代码以将其插入数据库之前,我尝试使用 Var_dump 或 print_r 来调试我的代码。当我使用这些方法时,我只得到我的表单的最后一个值,我已经搜索了为什么并且找不到答案,我将 name="something"更改为 name="something[]",这似乎是最常见的错误,但这似乎并没有改变任何东西。
所以我的表单页面上有这个 HTML 代码:
<form method="post" action="phptestpage.php">
<table>
<tr>
<th>Job Number</th>
<th>Timesheet #</th>
<th>Work Date</th>
<th>Shift</th>
</tr>
<tr>
<td><input type="text" name="job_number"></td>
<td><input type="text" name="timesheet"></td>
<td><input type="date" name="work_date"></td>
<td><select>
<option value="days">Days</option>
<option value="nights">Nights</option>
</select></td>
</tr>
</table>
<table>
<tr>
<th id="work_done">Work Done</th>
<th id="equipment_used">Equipment Used</th>
</tr>
<tr>
<td><textarea type="text" name="work_done" id="work_done_input"></textarea></td>
<td><textarea type="text" name="equipment_used" id="equipment_used_input"></textarea></td>
</tr>
</table>
<table id="time_table">
<tr>
<th>Last Name</th>
<th>First Name</th>
<th>Rate</th>
<th class="time">ST</th>
<th class="time">TH</th>
<th class="time">DT</th>
<th class="time">EX-ST</th>
<th class="time">EX-TH</th>
<th class="time">EX-DT</th>
</tr>
<tr class="blank_row">
<td><input type="text" name="last_name[]" class="last_name"></td>
<td><input type="text" name="first_name"></td>
<td><input type="text" name="rate"></td>
<td><input type="number" name="st" class="time_input" value="0"></td>
<td><input type="number" name="th" class="time_input" value="0"></td>
<td><input type="number" name="dt" class="time_input" value="0"></td>
<td><input type="number" name="ex_st" class="time_input" value="0"></td>
<td><input type="number" name="ex_th" class="time_input" value="0"></td>
<td><input type="number" name="ex_dt" class="time_input" value="0"></td>
</tr>
<tr>
<td><input type="text" name="last_name[]" class="last_name"></td>
<td><input type="text" name="first_name"></td>
<td><input type="text" name="rate"></td>
<td><input type="number" name="st" class="time_input" value="0"></td>
<td><input type="number" name="th" class="time_input" value="0"></td>
<td><input type="number" name="dt" class="time_input" value="0"></td>
<td><input type="number" name="ex_st" class="time_input" value="0"></td>
<td><input type="number" name="ex_th" class="time_input" value="0"></td>
<td><input type="number" name="ex_dt" class="time_input" value="0"></td>
</tr>
</table>
<input type="submit" value="Submit" name="submit">
</form>
我正在使用这段代码来尝试查看它输出的值:
<?php
$names = $_POST['last_name'];
var_dump($names);
?>
我尝试了一些变体,但不知道我到底在做什么,包括将 [] 放入名称变量值中,如 $_POST['last_name[]'] 以尝试匹配变量,我犯了错误像以前那样。
最佳答案
您需要将输入包装在 <form>
中具有正确 action
的元素和 method
.
<form action="/path/to/file.php" method="POST">
<input type="text" name="last_name[]" class="last_name">
</form>
通过这样做,您应该能够返回 array
使用 $_POST['last_name']
编辑
我已经使用简化版本的表单在本地对此进行了测试,以下内容将起作用:
<form method="POST">
<input type="text" name="last_name[]">
<input type="text" name="last_name[]">
</form>
这将返回 $_POST['last_name'] = array(0 => 'test1', 1 =>'test2')
.我认为您的问题不在于您为变量命名的内容,而在于脚本中的其他内容。我建议您在进行时注释掉部分并进行调试。
关于php - 为什么我的 $_Post 似乎只存储最后输入的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43957682/