iT邦幫忙

0

「請各位網頁編寫高手幫幫忙﹗」MYSQL內一個欄寫入多個值

大家好,本人是一個網頁的編寫新手,只接觸了一個多月。近來開始嘗寫編寫一個個網頁。其中有一個地方卡關了,找了很久資料也沒有找到,看似可能是關鍵字用錯了吧,所以希望在這兒找找各位幫忙。

本人的網站的這個部份
https://ithelp.ithome.com.tw/upload/images/20190115/20114649SgTHIxJrQ5.png

因為這個位置的職員有機會加減,所以本人用了php的while把資料從MYSQL抓下來製成dropdownlist,再用jquery變成可以自由加減。

但是問題來了﹗

就算我在網頁內能成功加減dropdownlist,但是回傳到mysql內也只是一個職員的名稱,那即是失敗了。
所以想問一下各位高手,有沒有什麼方法可以把多個值同時回傳到mysql內同一個欄?
https://ithelp.ithome.com.tw/upload/images/20190115/20114649A9CTYmGILJ.jpg

HTML with PHP

<fieldset>
    <label>負責職員:</label>
        <div class="multi-field-wrapper">
            <div class="multi-fields">
				<div class="multi-field">
					<select name="prog_staff">
                        <option value="0">Please Select</option>
<?while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
?>
                         <option value="<?=$row[nickname]?>"/><?=$row[nickname]?></option>
<?}?>
                     </select>
                        <button type="button" class="remove-field">Remove</button>
                    </div>
                  </div>
                <button type="button" class="add-field">Add field</button>
</fieldset>

DATABASE

$sql="insert into `reg-prog` (prog_staff) values ('$prog_staff')";
if(mysqli_query($connect,$sql)){
	setcookie("msg","registration completed",time()+60);
	header("location:room.php");
}else{
	setcookie("msg","system busy, try again later!",time()+60);
	header("location:programes.php");
}
?>
JQUERY

<script>
$('.multi-field-wrapper').each(function() {
    var $wrapper = $('.multi-fields', this);
    $(".add-field", $(this)).click(function(e) {
        $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
    });
    $('.multi-field .remove-field', $wrapper).click(function() {
        if ($('.multi-field', $wrapper).length > 1)
            $(this).parent('.multi-field').remove();
    });
});
</script>
yoching iT邦高手 1 級 ‧ 2019-01-15 14:01:55 檢舉
這你在php內組合不就好了??
沒看到你的程式碼,也不知道你碰到的是怎麼樣的問題。
lapza iT邦新手 5 級 ‧ 2019-01-15 23:08:20 檢舉
對不起,因為我只是一個接觸了一個月的新手,很多東西都沒有概念。
lapza iT邦新手 5 級 ‧ 2019-01-16 19:27:41 檢舉
感謝你。
0
最佳解答

問題在你的name的命名,後面要有[],才能傳多個值
另外有一點要注意,要有select的值,才會傳到後端
所以要傳多個值的話,要多選才行,一般是在送出前,
會用js全選後再送出
參考…
https://pjchender.blogspot.com/2015/04/php_28.html

看更多先前的回應...收起先前的回應...
lapza iT邦新手 5 級 ‧ 2019-01-15 22:56:43 檢舉

我試著了閣下提供的方法去修改,但傳到 MYSQL的值只有array或空白(視乎我當時的組合而定)。
https://ithelp.ithome.com.tw/upload/images/20190115/20114649FIKk99KTZ1.png
請問有沒有什麼建議可以讓我成功呢?
感謝大大。

lapza iT邦新手 5 級 ‧ 2019-01-15 22:57:49 檢舉

HTML with PHP

<fieldset>
    <label>負責職員:</label>
        <div class="multi-field-wrapper">
            <div class="multi-fields">
				<div class="multi-field">
					<select name="prog_staff">
                        <option value="0">Please Select</option>
<?while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
?>
                         <option value="<?=$row[nickname]?>"/><?=$row[nickname]?></option>
<?}?>
                     </select>
                        <button type="button" class="remove-field">Remove</button>
                    </div>
                  </div>
                <button type="button" class="add-field">Add field</button>
</fieldset>
lapza iT邦新手 5 級 ‧ 2019-01-16 19:28:40 檢舉

感謝你的大力幫忙,問題解決了,學到東西了。

0
maxmas
iT邦新手 4 級 ‧ 2019-01-16 08:43:24

請參考 jQuery multiselect
http://loudev.com/

或者另一個較強較複雜的multiselect
https://crlcu.github.io/multiselect/examples/javascript-options.html

要看陣列的值有無傳過來可用
var_dump($array);

lapza iT邦新手 5 級 ‧ 2019-01-16 19:29:00 檢舉

感謝你的幫忙。?

1
Aka程式狗
iT邦新手 4 級 ‧ 2019-01-16 08:47:03

你有看到送到mysql的資料是array表示快成功了,接下來請你在php使用print_r()或var_dump()印出array,在使用索引去決定使用陣列的哪一個內容,陣列的呼叫方式會是這樣$array[0],要注意你的變數名稱跟索引,關於array自己做功課就能明白。

PHP Array() 陣列函數用法

lapza iT邦新手 5 級 ‧ 2019-01-16 19:29:18 檢舉

感謝你的幫忙和鼓勵﹗

0
AKA 哈利死
iT邦新手 5 級 ‧ 2019-01-17 14:07:13

多個值同時回傳到mysql內同一個欄
符號分隔存入
A;B;C;D

我要發表回答

立即登入回答