Web サイトを作成するときに、このような状況に遭遇することがあります。このフォームは、バックグラウンドでデータを受信し、それをデータベースに保存するために使用されます。この記事を変更したいのですが、どのように対処しますか?
私の方法は、同じ形式で記事を作成することです。次の例は、Thinkphp フレームワークを使用して作成したコードです。Thinkphp を理解していなくても、問題ありません。
フロントがこうだったら
操作を受信するための記事コントローラーの add メソッドへの送信を示す説明。
とてもシンプルな形です
バックグラウンドでデータを直接受信します。
パブリック関数の追加{
if(IS_POST){
//ここで、実際にボタンに name="submit" 属性を追加できます。その後、if(isset($_POST['submit']) を使用して投稿の送信を決定します。
$title = $_POST['title'];
$content = $_POST['content'];
if($title&&$content){
//データを挿入します。
$flag = モデル->追加(投稿されたデータ);
if($flag) $str = "成功";
else $sttr="失敗";
}その他{$str = "失敗しました。タイトルまたはコンテンツを空にすることはできません!";
$this->error($str,U('article/index'));
終了;
}
//演算結果を返します。
$this->success("Add".$str,U('article/index')) //記事一覧ページにジャンプします
終了;
}
$this->display();// 送信されていない場合は、テンプレートを表示します。
}
操作が成功または失敗した場合は、追加ページに戻ります。主に、追加されていない場合は、次のテンプレート ファイルが表示されるためです。 if (IS_POST) else
//変更を加えたい場合は、URL を介して接続し、記事コントローラーの add メソッドをポイントし、上記のメソッドである ID を渡します。
フォームでは、次のように変更する必要があります。
バックグラウンド処理ページ。
パブリック関数の追加{
if(IS_POST){
$title = $_POST['title'];
$content = $_POST['content'];
if($title&&$content){
//データを挿入します。
//ここではまず配列を作成し、そこにデータを入れます
$data = 配列(
'タイトル' => $title,
'cntent'=> $content
);
if($id = $_POST['id']){
//ID があることを示します...
$flag = モデル修正データ;
}その他{
$flag = モデルはデータを追加します;
$type = "追加";
}
if($flag) $str = "成功";
else $sttr="失敗";
}その他{$str = "失敗しました。タイトルまたはコンテンツを空にすることはできません!";
$this->error($str,U('article/index'));
終了;
}
//演算結果を返します。
$this->success($type.$str,U('article/index')) //記事一覧ページにジャンプします
終了;
}
//ここでのテンプレート出力にも注意を払う必要があります。
if($id = $_GET['id']){
$this->ret = モデルは $id を通じてデータをクエリし、それをテンプレートに入れます。
}
$this->display();// 送信されていない場合は、テンプレートを表示します。
}
ロジックは少し複雑ですが、添付ファイルがある場合の対処方法を少し拡張してみましょう。実際、添付ファイルがあるかどうかを判断する必要があるだけです。 if ($_FILES['file']) だけを書いた場合、実際に添付ファイルが送信されたかどうかを判断できないため、 if($_FILES['file' ]['name']) を使用して判断します。添付ファイルがありません。配列は空ではありませんが、Array ( [ name] => [type] => [tmp_name]
=> [エラー] => 4 [サイズ] => 0 ) これはもちろん if 判定文でも当てはまります
。
さて、くだらないことをたくさん言いましたが、読んでいただきありがとうございます。
お役に立ちますように。
ご多幸をお祈りします