- ベストアンサー
問い合わせフォームをJSで制作したい。
小規模サイトを作る際に問い合わせフォームの要望がほとんど有ると思いますが、サーバサイトのJSで作る場合、商用可のプラグインやソースコードで対応するのでしょうか? それともexpressやmeteorなどのフレームワークがあれば簡単に導入できるのでしょうか? PHPは下記のようなものがあるようですが、JSはまだほとんどないのでしょうか? http://www.moongift.jp/2012/03/20120317/
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
サーバー・サイドの言語を何にするのかと言うのは大いに悩んで良いと思いますが、フロント・エンドには JavaScript は必須です、フレーム・ワークを使うにしても、そのフレーム・ワークを使って どう表示させるのかと言うスキルが必要になります。 今からでもフロント・エンドの JavaScript の勉強をして行った方が良いでしょう(その経験はムダにはなりません)。 ただし、受験勉強の弊害か(教科書を読んで言い成績を取って来たと言う経験から)本を読めばプログラミングができるようになると錯覚している人が たまにいますが、プログラムを組まなければプログラミングは上達しません(例えば大工になりたい人が本だけ読んでも上達しないのと同様です)。
その他の回答 (10)
- amanojaku1
- ベストアンサー率54% (265/488)
下記は(僕が作ったモノですが)フレームワークを使って「何を どう表示させるのか」と言う例として参考にしてみて下さい(この程度はプロから見れば子供レベルです)。 「CheckQuestion028」、「CheckQuestion029」、(フレームワークを使ってない)「CheckQuestion026」で どのように違うのか、参考にして下さい。 フレームワークは「jQuery、PIE.js」を使用しています。 CheckQuestion028 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000020&tsn+00000035&bts+2016/05/01%2012%3A11%3A41& ↑前に作成した「CheckQuestion026」では IE8 以下だとボタンはフラットで ただの四角になってしまいますが、次に作成した「CheckQuestion028」では IE8 以下(多分 IE6~IE8)でも角が丸い立体的(グラデーション)なボタンが表示できると思われます。 フレームワークは「jQuery、PIE.js」を使用しています。 CheckQuestion029 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000020&tsn+00000037&bts+2016/05/01%2012%3A11%3A41& ↑前述の「CheckQuestion028」では IE8 以下(多分 IE6~IE8)でも角が丸い立体的(グラデーション)なボタンが表示できると思われますが、 IE8 以下の場合 最初の一瞬だけボタンはフラットで ただの四角で表示されてしまいましたが、「CheckQuestion029」では IE8 以下の場合でも最初の一瞬にボタンがフラットで ただの四角に表示されないようにしています。 フレームワークを使ってない場合の例。 CheckQuestion026 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000020&tsn+00000030&bts+2016/05/01%2012%3A11%3A41& ↑この「CheckQuestion026」では IE8 以下だとボタンはフラットで ただの四角になってしまう。
- amanojaku1
- ベストアンサー率54% (265/488)
あくまでネットでチラッと見た感じですが、現在 IE8 以上の対応を想定しているような感じです。 IE9以上で良いなどと言うホトケのようなクライアントは殆ど居ないと思って下さい(IE6以上で動くように作れなどと鬼のような要求をしてくるクライアントも居ると思ってください)。 それは さておき、下記は(僕が作ったモノですが)フレームワークを使って「何を どう表示させるのか」と言う例として参考にしてみて下さい(この程度はプロから見れば子供レベルです)。 フレームワークは「jQuery、PIE.js」を使用しています。 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000020&tsn+00000035&bts+2016/05/01%2012%3A11%3A41&
- tracer
- ベストアンサー率41% (255/621)
>ならnodeのインストールコマンドを一回打てばそれで出来るのではないでしょうか? >gulpを使っているのでnpmコマンド一つでインストール出来たのでサーバ上でも同じではないでしょうか? 百聞は一見に如かずですよ。インストールや設定が質問者さんにとって難しいかどうかは私にはわかりません。何度も書いているように、gulpを使ってるのなら、なおさら、ローカルで検証してみればいいのではないでしょうか。それが最も確実な答えです。ローカルでの検証環境を用意できない程度のスキルであれば、リモートでできるはずがないのです。
- amanojaku1
- ベストアンサー率54% (265/488)
> フレームワークを使っても良いので自分で問い合わせフォームやショッピングカートを作ってみないと成長しないという事ですね。 フレームワークを使っても良いのですが、初心者の場合 どうしてもコピペをチョット修正した程度になってしまいがちです(コピペをチョット修正した程度ではプログラミングは上達しません)。 まず「フォームやショッピングカート」に こだわらず、自分の作りたいプログラムを作ってみるのが良いと思います。 プログラミングとは自分の作りたいプログラム(の仕様)を(プログラム的に)イメージできるか どうかと言う事です、つまり 当然 自分の作りたいプログラム(の仕様)を(プログラム的に)イメージできなければプログラムできないと言う事です。 ただし、プロとして仕事をしたいのなら、「HTML、CSS」も多少は理解している必要があります(「HTML」で何が出来るのか、「CSS」で何が出来て何が出来ないのか)。
- tracer
- ベストアンサー率41% (255/621)
> node.jsをインストールできるレンサバのサーバにインストールして、 > nodeの問い合わせフォームのソースが入ったファイルをアップロードすれば問い合わせフ> ォームの完成という事ではないのでしょうか? 何をもって「レンタルサーバー」とするかは定義が難しいところではありますが、一般的には「一般ユーザー向けのサービス」を指し、そのほとんどが、サーバーの設定やミドルウェアのインストールは許可されていません。つまり、「レンタルサーバー」において、ユーザーはnode.jsインストールの権限はなく、結果としてnode.jsは動かないわけです。(今後node.js対応サービスは出てくるかもしれませんが) 対して、「レンタルサーバー」ではなく、例に挙がったVPSやPaaSのような開発者向けサービスは、node.jsなどのミドルウェアを自由にインストールできるといえますが、逆に言えば、OSやサーバーソフトウェアなど含め、すべてユーザーがインストールしないと何もできないと言えます。つまり、少なからず、Linux/Centos/UbuntuやApache/nginx/h20など、サーバー構築・設定の知識が必要になってくるわけです。 > PHPはそうだがnode、express、meteorなどだけは違うのですか? phpに関しては、冒頭に挙がった一般向けサービスである「レンタルサーバー」で十分対応可能なので、ユーザーは何も考えずに、FTPなどでファイルをアップロードするだけで動きます。対して、node.jsのプログラムをアップロードするだけで動くようになるいわゆる「レンサバ」はおそらくまだないと思います。node.jsだけ特別かどうかという話ではありません。私が前の回答に書いたとおり、まだ、一般向けでないだけです。 早い話、質問者さんがローカルでnode.jsが動く環境を再現できる程度のスキルを持ち得ない限り、同様に何らかのリモートサービスでnode.jsを稼働させることは難しいと思います。おそらく現段階では何がどう難しいかすら分からないとは思いますが、その疑問もすべて、ローカルでやってみればすべてはっきりするはずです。 これまでに何度も書いてきましたが、単にお問い合わせフォームが作りたいがために、あるいは、javascript以外の言語を習得するのが面倒だからという理由で、node.jsを取り入れようとしているならば、それは誤りです。なぜならば、その目的に対して、node.jsの学習コストはずっとずっと高いからです。
お礼
PHPやRubyでサーバサイドのWEBアプリは作るしかないのですね。
補足
http://dream.jp/vps/service.html#os_app ならnodeのインストールコマンドを一回打てばそれで出来るのではないでしょうか? gulpを使っているのでnpmコマンド一つでインストール出来たのでサーバ上でも同じではないでしょうか?
- tracer
- ベストアンサー率41% (255/621)
>下記でWEBサーバを構築しなくても出来るのではないですか? 「リンク先のサービスを利用することでサーバー構築の知識は不要ではないか?」ということでしょうか。 リンク先は、VPSやPaasといった類のサービスの一覧です。ここで長々と説明しても仕方がないので、一度「VPS」「PaaS」がどういうサービスか調べてみてください。結論から言うと、リンク先のタイトルは語弊があります。正しくは「node.jsをインストールできるサービス」です。また、「レンタルサーバー」という表現も一般的に連想されるものとは違うため大いに語弊がありますね。 仮にサーバーソフトウェア・ミドルウェアが一式インストールされたサービスを利用されたとしても、node.jsを利用するにあたって、サーバーのカスタマイズをしていく必要があるため、サーバーの知識はどうあっても必須です。 やりたいという気持ちを止めるつもりはありませんが、ここでの回答含め、web上の情報だけで出来る気になるのは危険です。node.jsはローカルで十分再現可能なので、まずはローカルで試してみてはいかがでしょう。そうすれば、どれだけ道のりが長いか検討はつくと思います。少なくとも、代表的なサーバー言語(php/perl/ruby/python)よりも、うんと長い道のりであることを忠告します。
お礼
node.jsをインストールできるレンサバのサーバにインストールして、 nodeの問い合わせフォームのソースが入ったファイルをアップロードすれば問い合わせフォームの完成という事ではないのでしょうか? PHPはそうだがnode、express、meteorなどだけは違うのですか?
- amanojaku1
- ベストアンサー率54% (265/488)
>> モダンブラウザでは問題なくなったので、jQueryはこれから学ぶ人は必要ないという記事が沢山ありますので、もう問題ないのではないでしょうか? > 恐らく それはサーバ・サイドとの連携の事を言っているのだと思われます(つまり以前はサーバ・サイドとの連携は地獄のような惨状だったのでしょう、それに比べ今は天国のようだと言いたいのでしょう)。 > フロント・エンドに関しては JavaScript は互換性がありませんし、CSS でも非互換な部分は当然あります。 恐らく その記事を書いている人は記事を読んでる人も、当然 自分と同レベルのスキルを持っているだろうと言う思い込みで記事を書いてるのでしょう("出来る"プログラマーにありがちな思い込みです)。 つまり、自分はフロント・エンド書けるから、当然あなたもフロント・エンド書けるでしょ、だから これからはサーバ・サイドとの連携は jQuery に お任せで天国のような時代になったよね、と言う意味でしょう。
- amanojaku1
- ベストアンサー率54% (265/488)
http://okwave.jp/qa/q9169483.html > 今はIE9以上のみの対応だと思いますが、それでもドロワーメニュー、などのどこのサイトでもある程度の物を作った場合、互換性の問題が出るのでしょうか? 「ドロワーメニュー、などのどこのサイトでもある程度の物」なら CSS で対応できるのかもしれませんが、CSS でも非互換な部分は当然あります。 > 今はIE9以上のみの対応だと思いますが IE9以上で良いなどと言うホトケのようなクライアントは殆ど居ないと思って下さい(IE6以上で動くように作れなどと鬼のような要求をしてくるクライアントも居ると思ってください)。 現に この「OKWAVE」はIE8でもチャント表示できています(つまり、これはプログラマーの血と涙の結晶で IE8 にも対応している左証です^_^;)。 > モダンブラウザでは問題なくなったので、jQueryはこれから学ぶ人は必要ないという記事が沢山ありますので、もう問題ないのではないでしょうか? 恐らく それはサーバ・サイドとの連携の事を言っているのだと思われます(つまり以前はサーバ・サイドとの連携は地獄のような惨状だったのでしょう、それに比べ今は天国のようだと言いたいのでしょう)。 フロント・エンドに関しては JavaScript は互換性がありませんし、CSS でも非互換な部分は当然あります。 下記は あくまでも基本的な事なので、実践では それ以上のスキルが要求されるかもしれません(特に JavaScript は一筋縄ではいかないと思っておいた方が良いでしょう)。 「クロスブラウザスクリプトの作成テクニック」連載一覧 https://codezine.jp/article/corner/27 クロスブラウザのためのHTML/CSSのテクニック集 http://coliss.com/articles/build-websites/operation/work/1234.html
- amanojaku1
- ベストアンサー率54% (265/488)
かなり前、本で読んだ記事によると PHP はセキュリティー的に甘いらしいです。
お礼
これからやる人は、わざわざ古いPHPを選ぶ必要はやはりないのです。 Nodejsでも 下記でWEBサーバを構築しなくても出来るのですよね。 http://blog.chat.ac/node-js%E3%81%8C%E4%BD%BF%E3%81%88%E3%82%8B%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%94%E8%BC%83/
- tracer
- ベストアンサー率41% (255/621)
他の質問でお見かけしましたが、わかりやすくひとことで表現します。 node.jsは一般の方や素人の方、あるいは初学者が手を出すものではありません。 もちろん、手を出してはいけないというわけでもありませんが、おそらくほとんどの場合、通常のサーバーサイド言語を学ぶより困難でしょう。はっきり言うなら、今回の質問のような内容を都度、他者に質問している程度ではどうにもならないことがほとんどです。 node.jsはかなり頻繁にバージョンアップが行われています。まともに機能を追いかけるには、一次情報あるいは二次情報に目を通す必要が出てきます。その多くは外国語で発信されています。また、外国語だけでなく、サーバーサイドテクノロジー全般の知識がないと理解が難しいと言えます。それを前提に機能を語られるからです。それらを追いかけながら、多少なりともサーバーに手を出すということは、同時に、サーバーをバージョンアップさせていく必要もでてくるでしょう。(セキュリティ的にも) もし、学習をメインにされているのでしたら、node.jsの前に、まずはサーバーの基本を先に学習する必要があるでしょう。実際的には何らかのサーバーOSの上に、node.jsがインストールされるわけで、現在は、少なくとも日本語でサポートが充実したnode.js環境はないと思います。つまり、phpを使っていれば通常はサービスに管理を任せてしまえるもの(サーバー)も、自分で管理する必要がでてくるわけです。それがnode.jsをとりまく現状です。
お礼
フレームワークを使っても良いので自分で問い合わせフォームやショッピングカートを作ってみないと成長しないという事ですね。