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

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

有沒有一種方法可以在 PHP 中通過按鈕單擊傳遞變量?

有沒有一種方法可以在 PHP 中通過按鈕單擊傳遞變量?

PHP
千萬里不及你 2023-04-21 14:57:03
我在將變量傳遞給 PHP 函數時遇到問題。所以我在 html 或實際上是 PHP 中做的,但我用 PHP 制作了我的 HTML 代碼的一部分是這樣的:<form action=\"\" method=\"post\">    <textarea name=\"textarea\" rows=\"8\" cols=\"40\"></textarea>    <button type=\"button\" class=\"button\" name=\"enterText\" value=\"".$row['Wagon_ID']."\">        Enter    </button></form>現在,只要行數組中有更多 Wagon_ID,就會在 while 循環中發生。我想具體做的是在單擊此按鈕時調用一個函數,但我必須能夠傳遞 Wagon_ID。我可以通過使用<input type="submit"...并使值成為 Wagon_ID 來輕松做到這一點,但我的問題是因為值是 Wagon_ID,按鈕上的文本也將成為 Wagon_ID,并且文本需要保持輸入狀態。所以我嘗試的是使用按鈕類型并將值設置為 Wagon_ID,但現在甚至沒有調用 PHP 函數。有誰知道我可以使用這種類型的按鈕的技巧,或者在我以前使用的按鈕類型上維護我的“輸入”文本?提前致謝!這就是我在 PHP 中調用 buttonclick 的方式:if (isset($_POST['enterText']))     {        $text= $_POST['textarea'];        $wagon=$_POST['enterText'];        mysqli_query($_SESSION['conn'], "INSERT INTO description (Wagon_ID, textdescription) VALUES ('$wagon','$text')");    }
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

我認為你的問題的關鍵部分在這里:


我可以通過使用<input type="submit"... 并將值設置為 Wagon_ID 來輕松做到這一點,但我的問題是因為該值是 Wagon_ID,按鈕上的文本也將變為 Wagon_ID 并且文本需要保持輸入狀態。


這種情況就是隱藏域的用武之地。不要將實際的表單數據包裝在像按鈕這樣的 UI 元素中。像這樣嘗試:


echo '<form action="" method="post">

? ? <textarea name="textarea" rows="8" cols="40"></textarea>

? ? <input type="hidden" name="wagonID" value="'.$row['Wagon_ID'].'"/>

? ? <input type="submit" class="button" name="enterText" value="Enter text" />

</form>';

并在 PHP 更改中


$wagon=$_POST['enterText'];


$wagon = $_POST['wagonID'];


PS 正如您所看到的,您可以通過在單引號內回顯來自 PHP 的字符串來擺脫雙引號的所有混亂轉義,并且它更具可讀性并且更不容易出錯。


聚苯硫醚


警告:您的代碼容易受到 SQL 注入攻擊。您應該使用參數化查詢和準備好的語句來幫助防止攻擊者通過使用惡意輸入值來破壞您的數據庫。http://bobby-tables.com給出了風險的解釋,以及一些如何使用 PHP / mysqli 安全地編寫查詢的示例。永遠不要將未經處理的數據直接插入到您的 SQL 中。按照您現在編寫代碼的方式,有人可以輕松竊取、錯誤更改甚至刪除您的數據。


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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