我想創建一個PHP MySQL腳本,它將顯示數據,然後允許用戶編輯數據,但不必離開頁面才能這樣做。PHP更新同一頁上的MySQL數據庫
所以有可能在表單中顯示MySQL數據,允許用戶點擊它並對其進行編輯(如正常的電子郵件表單),然後單擊保存按鈕並進行數據更新。
我明白保存按鈕將重新加載相同的頁面,我只是不希望用戶必須去不同的頁面來編輯數據。
我想創建一個PHP MySQL腳本,它將顯示數據,然後允許用戶編輯數據,但不必離開頁面才能這樣做。PHP更新同一頁上的MySQL數據庫
所以有可能在表單中顯示MySQL數據,允許用戶點擊它並對其進行編輯(如正常的電子郵件表單),然後單擊保存按鈕並進行數據更新。
我明白保存按鈕將重新加載相同的頁面,我只是不希望用戶必須去不同的頁面來編輯數據。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// now you know the form has been submitted
}
如果您不使用java腳本(Ajax),您可以使用$ _REQUEST ..並使用meta將用戶發送到sql list頁面。
例如:
<?php
if($_REQUEST['do']=="showform"){
///// Show insert form
echo "<form action=\"test.php\" method=\"get\" enctype=\"text/plain\">
<input type=\"text\" name=\"name\" />
<input type=\"hidden\" value=\"insert\" name=\"do\" />
<input type=\"submit\" value=\"Add\" />
</form> " ;
$sql=$db->query("select * from names order by id decs ");
while($r=mysql_fetch_array($sql)){
///
/// print your data
///
}
}
if($_REQUEST['do']=="insert"){
$name=mysql_real_escape_string($_GET['name']);
/// call your insert function here
/// for Example
$sql=$db->query(" insert into names(name) values('$name')");
if($sql){///
echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=test.php?do=showform'>";
}
else{
echo "erorr";
}
}
?>
這僅出Java腳本方法,我希望這將是有益的
你不應該在SQL中使用字符串插值。您應該使用佔位符來保證您的SQL正確轉義。 – tadman 2012-08-09 20:56:21
MR.tadman謝謝你,這只是一個簡單的例子,並不是完美的例子。 – 2012-08-09 21:09:08
我會建議對發佈您的形式,以用於顯示數據的頁面。如果用戶點擊瀏覽器的刷新按鈕,表單將再次發送,這可能會做你不想要的東西。
使用POST/REDIRECT/GET pattern:將表單發佈到用於處理它的頁面,然後此頁面必須發送標題以重定向到您的顯示頁面。
調查AJAX。 – 2012-08-09 18:35:03
不需要Ajax,只是一個提交給處理顯示和更新的相同PHP的簡單表單。 – alfasin 2012-08-09 18:35:37
對於絕對沒有頁面重新加載所需的方法,您將需要使用AJAX。否則堅持從@alfasin的建議 – 2012-08-09 18:38:39