亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 PHP 將 html 復選框值保存到 MS-SQL 數據庫?

如何使用 PHP 將 html 復選框值保存到 MS-SQL 數據庫?

PHP
慕萊塢森 2023-04-02 11:21:58
我正在開發一個 html 表單,其數據被保存到 MS-SQL 服務器數據庫中。我能夠將所有其他字段保存到數據庫中它們各自的列中,但是復選框字段將值保留為空。我對這個概念不是很熟悉。這是代碼:表單.php<form class="cmxform" action ='functions/Form.php'  method="post"><div class="form-row">                   <h3> Contact Information</h3>                    <div class="form-group col-md-4">                        <label for="fName">First Name </label>                        <input type="text" class="form-control" id="fName" name="fName">                    </div>                    <div class="form-group col-md-4">                        <label for="lName">Last Name</label>                        <input type="text" class="form-control" id="lName" name="lName">                    </div>                    <div class="form-group col-md-4">                        <label for="email">Email </label>                        <input type="email" class="form-control" id="email" name="email">                    </div>                </div><div class="form-group col-md-12"><h3>Category: Please choose one of the following: </h3>     <div class="form-check">   <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">       <label class="form-check-label" for="defaultCheck1">           Vegetarian     </div><div class="form-check">         <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">         <label class="form-check-label" for="defaultCheck1">        Ham         </label>      </div><div class="form-check">    <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">    <label class="form-check-label" for="defaultCheck1">         Turkey         </label></div><div class="form-check">    <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">         <label class="form-check-label" for="defaultCheck1">        Other    </label></div>這是我在將數據發送到數據庫時遇到的唯一問題。休息一切正常。
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

<div class="form-check">

         <input class="form-check-input" type="checkbox" value="" **id="defaultCheck1"**>

         <label class="form-check-label" for="defaultCheck1">

        Ham

         </label> 

     </div>

<div class="form-check">

    <input class="form-check-input" type="checkbox" value="" **id="defaultCheck1"**>

    <label class="form-check-label" for="defaultCheck1">

         Turkey

         </label>

</div> 

首先,您要復制 ID。在任何情況下,這都不合適,因為元素 ID 必須是唯一的。


其次,表單僅提交具有名稱的字段元素的值。他們還需要值,您將其全部保留為“”。這段代碼中的“Ham”和“Turkey”只是文本字符串,不要隨表單一起提交。請參閱HTML 表單 - 是否需要名稱和 ID?


編輯 1:


PHP-除此之外,您的 PHP 還需要一些改進:


$tempCheck = filter_input(INPUT_POST, "defaultCheck1", FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);

$defaultCheck1 = (is_array($tempCheck)) ? implode(',', $tempCheck1) : null;

這些值不在數組中。假設您有三個復選框,分別命名為“a”、“b”和“c”。如果選中“a”的復選框,我將在 $_POST['a'] 中獲取它的值。如果沒有選擇“b”,$_POST['b'] 將不存在。


因此,對于您要處理的每個復選框值,您需要 a) 檢查它是否存在于 $_POST 中,如果存在,b) 使用該值(即,將其添加到以逗號分隔的字符串中)。


查看完整回答
反對 回復 2023-04-02
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

這是因為您的復選框字段沒有名稱,但我想您只想允許選擇一個類別,在這種情況下,您必須在 HTML 標記中使用單選字段:


<div class="form-check">

    <input class="form-check-input" type="radio" name="category" value="vegetarian" id="defaultCheck1">

    <label class="form-check-label" for="defaultCheck1">

        Vegetarian

</div>

<div class="form-check">

    <input class="form-check-input" type="radio" name="category" value="ham" id="defaultCheck2">

    <label class="form-check-label" for="defaultCheck1">

        Ham

    </label>

</div>

<div class="form-check">

    <input class="form-check-input" type="radio" name="category" value="turkey" id="defaultCheck3">

    <label class="form-check-label" for="defaultCheck1">

        Turkey

    </label>

</div>

<div class="form-check">

    <input class="form-check-input" type="radio" name="category" value="other" id="defaultCheck4">

    <label class="form-check-label" for="defaultCheck1">

        Other

    </label>

</div>

我還注意到您在多個地方使用了相同的 id 屬性,id 用于指定元素的唯一性,它不會破壞功能,但請記住這一點。


更新


如果你想有多個表示相同事物的類別,你可以將它們命名為 categories[0]、categories[1]、categories[2] ...


<div class="form-check">

    <input class="form-check-input" type="checkbox" name="categories[0]" value="vegetarian" id="defaultCheck1">

    <label class="form-check-label" for="defaultCheck1">

        Vegetarian

</div>

<div class="form-check">

    <input class="form-check-input" type="checkbox" value="ham" name="categories[1]" id="defaultCheck2">

    <label class="form-check-label" for="defaultCheck2">

        Ham

    </label>

</div>

<div class="form-check">

    <input class="form-check-input" type="checkbox" value="turkey" name="categories[2]" id="defaultCheck3">

    <label class="form-check-label" for="defaultCheck3">

        Turkey

    </label>

</div>

<div class="form-check">

    <input class="form-check-input" type="checkbox" value="other" name="categories[3]" id="defaultCheck4">

    <label class="form-check-label" for="defaultCheck4">

        Other

    </label>

</div>

然后在 PHP 中更新這個字段:


$tempCheck = filter_input(INPUT_POST, "categories", FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);

$stmt->bindParam(':defaultCheck1', implode(',', $tempCheck));


查看完整回答
反對 回復 2023-04-02
  • 2 回答
  • 0 關注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號