データを表示し、ユーザーがデータを編集できるようにするPHP MySQLスクリプトを作成したいのですが、そうするためにページを離れる必要はありません。
したがって、MySQLデータをフォームに表示し、ユーザーがそれをクリックして編集し(通常の電子メールフォームのように)、保存ボタンをクリックしてデータを更新できるようにすることは可能ですか。
保存ボタンが同じページをリロードすることを理解しています。データを編集するためにユーザーが別のページに移動する必要はありません。
はい、可能です。使用するだけ
<form action="" method="post">
リロードなしでも可能です-JavaScriptとAJAXを使用します。jQueryを使用すると、AJAXの使用が非常に簡単になります。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// now you know the form has been submitted
}
java script(Ajax)を使用しない場合は、$ _ REQUEST ..を使用し、metaを使用してユーザーをSQLリストページに送信できます。
例えば :
<?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スクリプトを使用しないこの唯一の方法が役立つことを願っています
データの表示に使用するページにフォームを投稿しないことをお勧めします。ユーザーがブラウザの更新ボタンを押すと、フォームが再度送信され、望ましくない処理が行われる可能性があります。
POST / REDIRECT / GETパターンを使用します。フォームを処理に使用されたページに投稿します。次に、このページは、表示ページにリダイレクトするヘッダーを送信する必要があります。