亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

javascript - php 後臺(tái)如何處理,表單提交過來的同一專案的多個(gè)資料? ?
高洛峰
高洛峰 2017-05-16 13:14:33
0
4
716

  1. #頁(yè)面結(jié)構(gòu)如上圖所示,後臺(tái)使用php.假如在教育經(jīng)歷中有三條記錄,點(diǎn)擊保存時(shí)同時(shí)提交到了後臺(tái),該如何處理比較好? ?

  2. 前臺(tái)頁(yè)面要可以動(dòng)態(tài)產(chǎn)生新的一行,該怎麼處理多行間name及其他屬性的問題? ?

可以講一下,大概的思路? ?

高洛峰
高洛峰

擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...

全部回覆(4)
習(xí)慣沉默

例如有以下欄位

scholl_name
education
address

修改原有的

例如它的ID是 123

<p>
    <input name="old[123][scholl_name]" value="....">
    <input name="old[123][education]" value="....">
    <input name="old[123][address]" value="...."> 
    <a href="javascript:delete(123)">刪除</a>
</p>

新增的

設(shè)定一個(gè)變數(shù) createdIndex = 0
新增

//createdIndex 使用js輸出
<p id="new_createdIndex">
    <input name="create[new_createdIndex][scholl_name]" value="">
    <input name="create[new_createdIndex][education]" value="">
    <input name="create[new_createdIndex][address]" value=""> 
    <a href="javascript:delete('new_createdIndex')">刪除</a>
</p>

//每次新增后都累加
createdIndex++;

刪除

function delete(id)
{
    if (id.indexOf('new_') < 0) //不是新增的, 新增一條刪除記錄到form
       $('<input name="deleted[]" value="'+id+'">').appendTo('#this-form');
    //刪除本行
    $('#' + id).remove();
}

後臺(tái)處理

$deleted = $_POST['deleted'];
foreach($deleted as $id)
{
   數(shù)據(jù)庫(kù)刪除對(duì)應(yīng)的$id
}
$create = $_POST['create'];

//如果需要排序 可以用sort或rsort

foreach($create as $v)
{
    /*
    結(jié)構(gòu)是: 
    $v = [
        'school' => 'Your value',
        'education' => '...',
        'address' => ''
    ];
    */
    insert into table 
}
   

$old = $_POST['old'];
foreach($old as $id => $v)
{
   //結(jié)構(gòu)同上
   update table set .... where id = $id;
}

這個(gè)是最相容的方式了,如果使用Vue之類的,還可以使用JSON提交,因?yàn)関ue可以監(jiān)控到表單是否修改,只用記錄已經(jīng)修改過的表單。

大家講道理
第一個(gè)問題

前端提交時(shí)使用陣列的形式:

[{
    "school": "中山大學(xué)"
    ...
}, {
    "school": "華南理工大學(xué)"
    ...
}]

服務(wù)端遍歷資料存到資料庫(kù)。

第二個(gè)問題

name是不衝突的,id才衝突??梢愿敿?xì)描述問題嗎?

給我你的懷抱

1、提交到後臺(tái)的資料直接$_POST接收,然後再循環(huán)遍歷,對(duì)相應(yīng)資料進(jìn)行驗(yàn)證,透過驗(yàn)證後存入資料庫(kù)就好;
2、新增的行同一欄位所有屬性相同;

某草草

第一種方案:
點(diǎn)擊提交的時(shí)候透過js將你要的資料統(tǒng)一處理好後(比如格式化成數(shù)組)放入隱藏域中再提交表單
第二種方案:
表單元素name上做處理樓上已說得很清楚:
第三種方案:(和第二種類似)

  1. 先定義新增一行的範(fàn)本

<script type="text/template" id="tpl_xxx">
//html元素
<tr>
    <input name="school[]" />
    <input name="remark[]" />
</tr>
</script>
  1. 新增行的時(shí)候clone一下tpl_xxx,放入對(duì)應(yīng)的地方(例如表格最後一行)

  2. 提交後PHP處理

$schools = $_POST['schools'];
$remarks = $_POST['remarks'];
//$schools[0], $remarks[0], ... 組成第一行數(shù)據(jù)
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板