REST のコツをつかむためだけに小さなアプリケーションの作成に取り組んでおり、DELETE メソッドで問題が発生しています。これまで使ったことがないので、どのように動作するかわかりません。
とにかく、このチュートリアルに従って、基本を理解しました。事前に作成された配列を使用する代わりに、ユーザーがデータを送信して MySQL データベースから表示できるように変更しました。
私は3つのファイルを持っています:
server.php - 使用されるメソッドを決定し、それに応じて動作する「API」
input.php - ユーザーがデータを入力するためのフォームを表示します
viewinput.php - 入力された入力を表示します。
エントリを削除できるように、viewinput.php に「削除」ボタンを配置しようとしています。入力した情報を表示するコードは次のとおりです。
while ($result = mysql_fetch_array($sql)){
?>
<tr><td><? echo $result['id']." "; ?></td><td><? echo $result['text']; ?></td>
<form method = "delete" >
<td><input type="submit" name="delete" value="delete"></input></td></tr>
<input type="hidden" name = "hidden_delete" value="<? echo $result['id']; ?>"></input>
</form>
<?
}
さて、私の server.php ファイル (API) では、これがメソッドを決定し、さらに処理するために URL をコンポーネントに分割するために呼び出される最初の関数です。
public function serve() {
$uri = $_SERVER['REQUEST_URI'];
echo $method = $_SERVER['REQUEST_METHOD']; //GET and POST are displayed, DELETE isn't
$paths = explode('/', $this->paths($uri));
array_shift($paths); //
$resource = array_shift($paths);
削除ボタンを押すと、URLは
/rest/viewinput
に
/rest/viewinput?delete=delete&hiddendelete=3 //assuming I deleted the 3rd entry
私が理解していることから、DELETE メソッドが送信されたときの URL は /rest/viewinput/3 である必要があります
私のserver.phpファイルでは、メソッドをエコーすると、POSTおよびGETメソッドのように「DELETE」が表示されません。
DELETE に関するこのリソースを見つけました。私が理解していることから、識別子は URL を介して渡されますが、GET や POST と同じように何らかのメソッドを受け取る必要があります (つまり、メソッドをエコーするときにコードに DELETE が表示されるはずです)。