我是第一次使用 HTML PHP 和 Ajax,所以請耐心等待。大部分程式碼來自我在網路上找到的範例。但是,我無法讓它實際插入資料庫。 ajax函數確實進入成功函數;成功輸出只是顯示為警報的 php 檔案。
我把這些都放在本地了,所以我啟動 chrome 作為
chrome --allow-file-access-from-files file:///C:/filepath/index2.html
我知道這不好,但我正在湊合著。
index.html
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <title>Insert</title> </head> <body> <label>Name</label> <input type="text" id="name"> <label>Email</label> <input type="text" id="email"> <button type="submit" id="button">SAVE</button> <script> $(document).ready(function(){ $("#button").click(function(){ var name=$("#name").val(); var email=$("#email").val(); $.ajax({ url:'insert.php', method:'POST', data:{ name:name, email:email }, success:function(data){ alert(data); }, error:function(data){ alert(JSON.stringify(data)); } }); }); }); </script> </body> </html>
插入.php
<?php $name=$_POST['name']; $email=$_POST['email']; $conn = new mysqli('Azure server URL', 'Username','Password', 'tableName'); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql="INSERT INTO data ('id', 'name', 'email') VALUES (NULL, $name, $email)"; if ($conn->query($sql) === TRUE) { echo "data inserted"; } else { echo "failed"; } ?>
你說
...這不僅不好,而且是造成問題的原因。 Chrome 您的檔案系統無法執行 PHP 程式碼。
您需要使用具有可用 PHP 執行時間的適當 Web 伺服器,以便它支援執行 PHP 來回應 HTTP 請求。使用 XAMPP 或 Laragon 安裝功能齊全的 PHP 開發環境,其中 PHP、Apache 和 MySQL/MariaDB 可用且已配置,因此您可以在本機電腦上正確開發和測試。
快速修復的另一個選項是PHP 內建網頁伺服器 一旦你安裝了PHP 就可以使用,雖然它的功能比較有限,但它與真實的部署環境不太相似,顯然如果你也需要資料庫等元件,你需要設定你自己單獨說一下。