为什么我的$ _Post只显示存储输入的最后一个值?

时间:2017-05-13 20:26:55

标签: php html

我想在编写php代码将其插入数据库之前,先使用Var_dump或print_r来调试我的代码。当我使用这些方法时,我只得到我的表格的最后一个值,我已经搜索了为什么,并且找不到答案,我更改名称="某些内容"命名="某事[]",这似乎是最常见的错误,但这似乎并没有改变任何东西。

所以我在我的表单页面上有这个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>
&#13;
&#13;
&#13;

我正在使用此代码尝试查看它输出的值:

<?php
$names = $_POST['last_name'];
var_dump($names);
?>

我尝试了一些不知道我在做什么的变化,包括将[]放在名称变量值中,如$ _POST [&#39; last_name []&#39;]试试为了匹配变量,我之前犯过这样的错误。

1 个答案:

答案 0 :(得分:1)

您需要使用正确的<form>actionmethod元素中包含输入。

<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')。我认为你的问题不是你的变量命名,而是你的脚本中的其他东西。我建议你去看部分和调试。