我已經詳盡地搜索了完成此任務的方法。我在將div內的內容轉換爲可以處理爲php語句的變量時遇到了問題。我曾嘗試使用AjaxForm我曾嘗試AJAX。如何將表單中的div內容與其他表單數據一起放入數據庫中
這是我的表單代碼,它是在「library.php」標題下。這裏我有一個ID爲「input」的div。我試圖在這個div中獲取數據,這個數據可以是「Public」或「Private」選項。然後,我將繼續使用該按鈕創建的數據提交給database.php中
<form method="post" action="library.php" id="form3">
<a id="libOptPP" class="select">
**<div id="input" class="input" name="Privacy">
</div>**
<div id="libOptPP2" class="select-options">
<ul>
<li id="pub" value="1"><span>Public</span> (logo) </li>
<li id="priv" value="2" class="selected"><span>Private</span></li>
</ul>
</div>
</a>
<div class="libOptCS">
<span class="bbCT">
<button type="submit" name="create"> Create </button>
</span>
</div>
</form>
這裏是位於Library.php的頭部內的腳本,我會嘗試使用Ajax發送變量「隱私」的Database.php。這個變量將包含在前面的代碼塊中聲明的div的文本。這將是選項「公共」或「私人」。我沒有使用div的ID名,而是使用類來選擇它是「.select .input」。
<script>
$(document).ready(function main() {
$("create").click(function() {
var privacy = $(.select .input).text();
.ajax({
type: "POST",
url: ../../database/database.php,
data: "privacy="+privacy,
dataType: "html",
async: false,
success: function(data) {
alert(data);
}
});
});
});
</script>
這是用於將表單數據輸入到我的數據庫的php代碼。一旦我們點擊前面代碼中所述的創建按鈕,這將激活將數據傳輸到適當的表格和後續行中。
if (isset($_POST["create"])) {
$Privacy = mysqli_real_escape_string($db, $_POST['privacy']);
$ETH = mysqli_real_escape_string($db, $_POST['ETH']);
$Email_Phone_Number = $_SESSION['Email_Phone_Number'];
if ($Privacy === "Public") {
$sql = "INSERT INTO library (Title, Privacy, Bio, User_iD)
VALUES ('$ETH', '$Privacy', 'testbio', (SELECT User_iD FROM logstart WHERE Email_Phone_Number='$Email_Phone_Number'))";
mysqli_query($db, $sql);
}
if ($Privacy === "Private") {
$sql = "INSERT INTO library (Title, Privacy, Bio, User_iD)
VALUES ('$ETH', '$Privacy', 'testbio', (SELECT User_iD FROM logstart WHERE Email_Phone_Number='$Email_Phone_Number'))";
mysqli_query($db, $sql);
}
if (mysqli_query($db, $sql)) {
echo "YES!";
} else {
echo "No!";
}
}
某處沿着該變量未被識別。當我按下「創建」按鈕時會創建「未識別的索引:隱私」彈出窗口。換句話說,$ _POST ['privacy']不包含我需要的數據,它應該是Public或Private,以便我可以識別並進一步使用其餘的代碼。
不知道PHP,但...爲什麼你不使用輸入控件 - 無論是隱藏的,文本的還是textarea?此外,你綁定到創建按鈕的點擊事件,但它是一個提交按鈕,你沒有調用preventDefault,所以也許表單在你的代碼運行之前被提交? – upsidedowncreature
您的代碼易受SQL注入攻擊。您應該使用參數化查詢和準備語句來幫助防止攻擊者通過使用惡意輸入值來危害數據庫。 http://bobby-tables.com/給出了風險的解釋,以及如何使用PHP/mysqli安全編寫查詢的一些示例。 – ADyson