質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

Q&A

解決済

1回答

4422閲覧

【PHP】SlimでGETとPOSTを両方受け取りたい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

0グッド

0クリップ

投稿2015/11/26 04:35

phpで、slimを使ってwebサイトを作成しております。

ページ遷移の際に、一部はGETとして、一部はURLに影響を与えずに(POSTとして?)パラメータを受け渡したいのですが、どうしたらよいのでしょうか?
現在は以下のようなコードでGETでのみパラメータを渡しています。

$app->get("/search/:keyword", function($keyword) use ($app){ //$keywordに対する処理 });

上記に対して、URLはそのままに、page(何ページ目か)・sort(昇順・降順)・limit(何件表示するか)等を渡したいです。

単純にPOSTパラメータを加えて渡そうとすると、404となってしまいます。
slimの公式を参考に$app->map等も試してみましたが、うまくいきませんでした。

例えば "/search/hoge" のURLを直接叩いたときはhogeの検索結果(page, limit, sortはデフォルト値)にアクセスされ、
"/search/hoge" の2page目を表示したときもURLは "/search/hoge" のままにしたいです。

javascript等を併用しないと難しいのでしょうか?
拙い質問で申し訳ありませんが、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

php

1$app->post("/search/:keyword", function($keyword) use ($app){ 2 $post = $app->request->post(); 3});

これでPOSTパラメータが取れると思います。

しかしこういう場合はGETメソッドを使用したほうが相応しいと思いますので

php

1$app->get("/search/:keyword", function($keyword) use ($app){ 2 $get = $app->request->get(); 3});

として、 /search/キーワード?page=1&limit=10 このようにアクセスしてみてはいかがでしょうか。

投稿2015/11/26 05:14

編集2015/11/26 05:15
naga3

総合スコア1293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/11/26 06:11

回答ありがとうございます。 示していただいた方法で、URLでパラメータを渡しつつ、POSTパラメータを受け取ることが出来ました。 不勉強で申し訳ないのですが、相応しいというのはプログラムの挙動的に問題があるということでしょうか? 出来ればURLをスッキリさせておきたいと思ったのですが。
naga3

2015/11/26 06:26

プログラムの挙動的には特に問題はありません。 ただ現在主流のREST的な考え方に従うとPOSTはリソースの作成に使うので 検索のようにリソースの更新が無い場合はGETを使うことが多いと思います。
退会済みユーザー

退会済みユーザー

2015/11/26 06:31

お作法のようなものなのですね。勉強になりました。 実装はGETメソッドにしてみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問