iT邦幫忙

1

請問php POST 要怎麼做一次多筆

原本的程式

<form action="kks.php" method="post">
<h2 class="text-center">賣場編號:</h2>
<input class="form-control" type="text" name="p01" />
<input class="form-control" type="text" name="p02" />
<input class="form-control" type="text" name="p03" />
<input class="form-control" type="text" name="p04" />
<input type="submit" class="btn btn-primary btn-lg form-control pl-1" value="送出表單" />
</form>

PHP

<?php
echo "第一筆".$_POST["p01"];
echo "第二筆".$_POST["p02"];
echo "第三筆".$_POST["p03"];
echo "第四筆".$_POST["p04"];
?>

https://ithelp.ithome.com.tw/upload/images/20190617/20110292aCbinXXFrW.jpg

輸入編號只能一個一個點 然後點送出 在處理多筆的時候實在很麻煩

請問input若是用分號分開 如下圖
https://ithelp.ithome.com.tw/upload/images/20190617/20110292gvpcMGhoxQ.jpg

php的post要怎麼寫 才能分割成多筆....

看更多先前的討論...收起先前的討論...
froce iT邦大師 6 級 ‧ 2019-06-17 14:09:41 檢舉
就送一個post回去後端,然後後端自己用逗號切開後,依序存進去啊...
為啥要送多個post?
冰水 iT邦新手 5 級 ‧ 2019-06-17 14:18:09 檢舉
沒有後端儲存的資料庫
只能用這樣的模式來處理前端...

需要能夠簡單輸入 php的$post能夠對應
vegalou iT邦新手 4 級 ‧ 2019-06-17 14:22:56 檢舉
input text onblur 就 ajaxSend( $('#foo').value ) 或者旁邊加個 onclick 確認交易回傳
goodnight iT邦研究生 4 級 ‧ 2019-06-18 23:04:38 檢舉
輸入完第一筆, 為什麼不按TAB 鍵, 跳下一欄, 操作是有多不熟??

2 個回答

3
dragonH
iT邦研究生 3 級 ‧ 2019-06-17 14:36:30
最佳解答

html

<form id = "myForm" method = "post" action = "190617-2.php">
  <input type = "text" name = "myData"> // 輸入 1,2,3,4,5
  <button type = "submit" id = "mySubmit">送出</button>  
</form>

php

<?php
  $myData = explode(',', $_POST['myData']);
  foreach($myData as $key=>$value) {
    echo "第 ".($key + 1)." 筆: ".$value."<br>";
  }
  /*
    第 1 筆: 1
    第 2 筆: 2
    第 3 筆: 3
    第 4 筆: 4
    第 5 筆: 5
  */
?>

這樣?

看更多先前的回應...收起先前的回應...
冰水 iT邦新手 5 級 ‧ 2019-06-17 14:54:20 檢舉

謝謝~~
你的解答最符合我的需求^^

dragonH iT邦研究生 3 級 ‧ 2019-06-17 14:59:49 檢舉

其實你原文的

請問input若是用分號分開...

這行以上的都可以刪除

不然感覺很容易誤導人/images/emoticon/emoticon06.gif

小魚 iT邦高手 1 級 ‧ 2019-06-17 15:01:37 檢舉

其實現在直接Excel 或 txt匯入就好了.

dragonH iT邦研究生 3 級 ‧ 2019-06-17 15:03:07 檢舉

匯入?!

他不是說沒有資料庫嗎/images/emoticon/emoticon16.gif

小魚 iT邦高手 1 級 ‧ 2019-06-17 15:09:35 檢舉

沒有資料庫可以匯入到畫面 XD
不過這年頭沒有資料庫還能做什麼?
輸入之後不儲存是要做什麼...

冰水 iT邦新手 5 級 ‧ 2019-06-17 15:34:59 檢舉

/images/emoticon/emoticon16.gif

這 第一次寫這種小工具
PHP的語法還很不熟
都用網路範例來一樣畫葫蘆

這程式是一個小工具 用來抓不同編碼頁面的資訊

雷伊 iT邦新手 3 級 ‧ 2019-06-17 15:41:35 檢舉

dragonH 您一定是一個很強的RD

dragonH iT邦研究生 3 級 ‧ 2019-06-17 15:52:44 檢舉

冰水

其實關鍵字下對

很多問題很容易解決的

例如你這就可以 google

php divide comma

就有很多資訊可以看了


雷伊

只是相對來說比較熟這些東西而已

我對您擅長的網管那塊

就是一點概念也沒有/images/emoticon/emoticon02.gif

而且對許多邦友來說

我的資歷是連邊都沾不到的

只是我比較閒XD

其實....單一input用分號處理然後再用php程式。是很可怕的一件事喔。
原因我就不說了。一般建議像小魚那樣陣列用法。

dragonH iT邦研究生 3 級 ‧ 2019-06-17 15:59:33 檢舉

浩瀚星空

你是指怕切完會有空白這種值存在嗎?

還是說能給個關鍵字解惑一下?XD


如果是 SQL Inject 的問題

如果不特別處理的話

不論是我的或是小魚大的方法

都會遇到吧

還是說 php 對 input 會特別處理 ? !

( vegalou大 我次數沒了只能回在這/images/emoticon/emoticon02.gif
不知道這標記會不會通知

vegalou iT邦新手 4 級 ‧ 2019-06-17 16:07:55 檢舉

SQL Inject 打個針,反正你都開了分號是合法的,drop all!

froce iT邦大師 6 級 ‧ 2019-06-17 16:11:08 檢舉

因為無法取得公司資料庫 無奈只能用這樣來寫..

我搞不懂你的問題和資料庫到底有啥關係...

小魚 iT邦高手 1 級 ‧ 2019-06-17 16:15:05 檢舉

froce
我是覺得,
他連自己的需求是什麼都不知道 XD

雷伊 iT邦新手 3 級 ‧ 2019-06-17 17:18:19 檢舉

我年輕時不努力僅有高職畢業在IT各方面都遜爆了,沒有正規的理論與基礎所有問題全都土法煉鋼踹到成功為止,著實浪費很多的時間,有時連怎麼解決問題的都不知道,我前老闆每次逼問我問題怎麼解決的我都回答不出來,他以為我藏私所以叫我走路了。

dragonH
其實你算有說到了,
一是注入的問題沒錯。
二是空白的問題。

最後一個才是不建議用這樣子的主因。
就是可以有無限陣列不可控的陣列數量因素。
如「,,,,,,,,,,,,,,,,,」
因為要做切割,你也不能限制長度。
然後也無法數值化宣告。

所以一般並不建議這樣的用法。

3
小魚
iT邦高手 1 級 ‧ 2019-06-17 14:39:47

我猜你的需求是這樣?

test.html

<html>
    <head>
        <title>測試</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form method="post" action="test.php">
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <div>編碼:<input type="text" name="test[]"/></div>
            <input type="submit" value="確認"/>
        </form>
    </body>
</html>

test.php

<?php
    $test = $_POST['test'];
    echo print_r($test, true)."<br>";
    $length = count($test);
    for($i=0;$i<$length;$i++)
    {
        echo $i.":".$test[$i]."<br>";
    }
?>

html畫面
https://ithelp.ithome.com.tw/upload/images/20190617/20105694G01cSfdCTR.png
php畫面
https://ithelp.ithome.com.tw/upload/images/20190617/20105694Ex51IeNbkL.png

我要發表回答

立即登入回答