php使用数组将数据插入两行

时间:2015-02-09 14:51:29

标签: php arrays ajax

我有这样的表格。我想在ajax中保存表单,主要是 此处输入的数据将按2行插入。 1表示产品a,另一个表示b。

(a和b是产品的名称,将在产品名称栏中保存为a和b)

<form class="product-data" action="">
    <table>
        <tr class="data-row">
            <td> 
                <input type="number" name="finance[a_source_unit]" >
            </td>
            <td >
                <input type="number" name="finance[a_target_unit]">
            </td>
            <td>
                <input type="number" name="finance[a_client_price]">
            </td>
            <td>
                <input type="number" name="finance[a_client_salary]" >
            </td>
    </tr>
    <tr class="data-row">
        <td>
            <input type="number" name="finance[b_source_unit]" >
        </td>
        <td >
            <input type="number" name="finance[b_target_unit]">
        </td>
        <td>
            <input type="number" name="finance[b_client_price]">
        </td>
        <td>
            <input type="number" name="finance[b_client_salary]" >
        </td>
    </tr>
    </table>
</form>

我的数据库是这样的

id product_name source_unit target_unit client_price client_salary

所以我像这样制作了我的ajax

var Table = $(this).closest('.product-data');
var data = Table.serializeArray();
data.push({name: 'action', value: 'save_product_data' });
$.post( ajaxUrl, data, function(msg) {
    console.log(msg);
});

在save_product_data函数中,我有这样的数据

function save_product_data() {
    $finance = $_POST['finance'];
    print_r($finance);
}

数据就像这样

Array
(
    [a_source_unit] => 3213
    [a_target_unit] => 123
    [a_client_price] => 34278
    [a_client_salary] => 7584
    [b_source_unit] => 3213234
    [b_target_unit] => 1234
    [b_client_price] => 34275438
    [b_client_salary] => 75854    

)

所以我基本上希望a的值插入一行,b将插入另一行。

1 个答案:

答案 0 :(得分:0)

如果你使用这样一个表格:

<form class="product-data" action="">
    <table>
        <tr class="data-row">
            <td> 
                <input type="number" name="finance[a][source_unit]" >
            </td>
            <td >
                <input type="number" name="finance[a][target_unit]">
            </td>
            <td>
                <input type="number" name="finance[a][client_price]">
            </td>
            <td>
                <input type="number" name="finance[a][client_salary]" >
            </td>
    </tr>
    <tr class="data-row">
        <td>
            <input type="number" name="finance[b][source_unit]" >
        </td>
        <td >
            <input type="number" name="finance[b][target_unit]">
        </td>
        <td>
            <input type="number" name="finance[b][client_price]">
        </td>
        <td>
            <input type="number" name="finance[b][client_salary]" >
        </td>
    </tr>
    </table>
</form>

您在$_POST数组中会有类似的内容,您只需要使用foreach逐行插入:

array
  'finance' => 
    array
      'a' => 
        array
          'source_unit' => string '5' (length=1)
          'target_unit' => string '5' (length=1)
          'client_price' => string '5' (length=1)
          'client_salary' => string '5' (length=1)
      'b' => 
        array
          'source_unit' => string '1' (length=1)
          'btarget_unit' => string '1' (length=1)
          'bclient_price' => string '1' (length=1)
          'client_salary' => string '1' (length=1)