Capture values of HTML elements in a dynamic table

夙愿已清 提交于 2020-01-30 12:52:42

问题


I have the following dynamic table generated from database.

<form method="post">
    <?php
    while($result = mysqli_fetch_array($tableQueryExecute)){

        $shift1Oa = $result['operator1'];
        $shift2Oa = $result['operator2'];
        $shift3Oa = $result['operator3'];
        $shift4Oa = $result['operator4'];
        $id = $result['srNumber'];

        echo '<td scope="row">'.$id.'</td>
              <td>                         
                    <input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="'.$shift1Oa.'" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="'.$shift2Oa.'" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="'.$shift3Oa.'" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="'.$shift4Oa.'" disabled>
              </td>

              <td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="'.date("Y-m-d").'"></td>

              <td>
                <a href="supervisorEdit.php?source='.$id.'" type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">Save</a>
              </td>';

    }

</form>

What I need

Lets say user clicked Save button of a particular row of that table, I want the respective values of that row to be saved in database using php $_POST or $_GET method something like the following

if(isset($_GET['source'])){
    $sourceId = $_GET['source'];
}

Issue

My issue is, I don't know how to get the $_POST values of the form since name of every items are dynamically generating. I tried to make the name unique to each element by adding the unique $id value to it as per the following.

<input type="text" class="form-control" id="shift1Oa" name="shift1Oa'.$id.'" value="'.$shift1Oa.'" disabled>

I can't capture this unique name values by the following method. Does anyone know why?

if(isset($_GET['source'])){
    $sourceId = $_GET['source'];
    echo $_GET['shift1Oa'.$sourceId];
}

Edit 1

To get a better picture, following is the screenshot of a row with the button


回答1:


Correct Me If I am not wrong.. Here you want to get the all value from a form Right? on click of button submit? Why you are making this button href? Suppose we have 3 data into my $result and loops look like below

 <form method="post" action="">
<tr>
       <td scope="row"></td>
       <input type ="text" name="sourece" value=1 />
              <td>                         
                    <input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="1" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="2" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="3" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="4" disabled>
              </td>

              <td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="<?=date("Y-m-d")?>"></td>

              <td>
                <input type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">
              </td> 
</form>
</tr>
<form method="post" action="">
<tr>
       <td scope="row"></td>
       <input type ="text" name="sourece" value=2 />
              <td>                         
                    <input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="11" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="22" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="33" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="44" disabled>
              </td>

              <td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="<?=date("Y-m-d")?>"></td>

              <td>
                <input type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">
              </td> 
</form>
</tr>
<form method="post" action="">
<tr>
       <td scope="row"></td>
       <input type ="text" name="sourece" value=3 />
              <td>                         
                    <input type="number" class="form-control" id="shift1PinCount" name="shift1PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 1" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift1Oa" name="shift1Oa" value="111" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift2PinCount" name="shift2PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 2" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift2Oa" name="shift2Oa" value="222" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift3PinCount" name="shift3PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 3" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift3Oa" name="shift3Oa" value="333" disabled>
              </td>

              <td>
                    <input type="number" class="form-control" id="shift4PinCount" name="shift4PinCount" placeholder="Pin Count" title="Please key in Pin Count for Shift 4" min=0>
              </td>

              <td>
                    <input type="text" class="form-control" id="shift4Oa" name="shift4Oa" value="444" disabled>
              </td>

              <td><input class="form-control" type="date" id="shiftDate" name="shiftDate" value="<?=date("Y-m-d")?>"></td>

              <td>
                <input type="submit" class="btn btn-primary" name="savePcData" id="savePcData" value="savePcData">
              </td> 
</form>
</tr>

<?php

if(isset($_POST['savePcData'])){

    echo "<pre>";
    print_r($_POST);
    die('mms');

}


?> 

Your Out put will be

here sourece is your unique Id which helps you to update the data into your DB

After submitting the form from any tr(row) you will redirect to same page with POST method and get data for that particular row on that page so you can easily update it as you want

You can check this by using print_r($_POST); on same page

If you have any questions please feel free to ask me...



来源:https://stackoverflow.com/questions/59463639/capture-values-of-html-elements-in-a-dynamic-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!