2015-02-09 98 views
0

我有一个这样的表单。我想将表格保存在ajax中,主要内容是 这里输入的数据将插入到2行中。 1为产品a,另一种为b。php将数据插入两行数组

(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 

所以我做了我这样的阿贾克斯

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  

) 

所以基本上我想,对于一个值将连续插入和b将另一行插入。

+0

你几乎在那里,只需在你的''save_product_data()''function http://www.w3schools.com/php/php_mysql_insert.asp – AgeDeO 2015-02-09 14:54:03

+0

中添加两个插入查询。我知道如何保存数据。我想知道如何将它们放在两行中。 – NewUser 2015-02-09 14:55:17

+2

您可以使用多维数组,如:表单文件中的'finance [b] [client_salary]':)创建分隔查询会更容易 – 2015-02-09 14:55:39

回答

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)