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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

10563閲覧

HTMLから、formのvalue以外の属性値を外部PHPに渡したい

nagata_se

総合スコア50

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/01/21 06:55

編集2016/01/21 08:33

初めまして。
初心者ながらご質問させていただきます。
HTMLに

<form action="hoge.php" method="post"> <input type="text" id="test" value="初期値" _hoge="foo"> </form>

とあった場合、_hoge属性の属性値fooを外部PHPに送信することは可能なのでしょうか?
また、複数の属性値を同時に送信すること(valueと_hogeを同時)は可能でしょうか。

どういった関数を使えばできる、といった情報だけでも構いませんので、ご教授ください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

もし、サーバーに渡したいプロパティが HTML5 の独自カスタム属性の仕様に則っていれば、dataset プロパティに独自属性のデータが格納されます。

HTML

1<!-- "data-" で記載された属性は dataset に格納されます。 --> 2<input type="text" id="test" value="初期値" data-aaa="foo" data-bbb="bar" onclick="test()"> 3<script> 4window.test = function() { 5 // id="test" の DOM を取得 6 var test = document.getElementById("test"); 7 // JSON.stringify(test.dataset) で独自プロパティを JSON 文字列に変換できます。 8 alert(JSON.stringify(test.dataset)); 9} 10</script>
結果: {"aaa":"foo","bbb":"bar"}

dataset を JSON (文字列)化してサーバーに送信し、サーバー側では JSON 文字列をパース (json_decode()) する処理を記載すれば、比較的少ないコードになります。

○ 手順

  1. サーバーに渡したいプロパティを "data-" の形に変更
  2. データを送信する際、該当タグの dataset を JSON 文字列に変換し、hidden に設定
  3. サーバー側で、2の値を json_decode で分解する

ただし、結局のところ、ブラウザからサーバーにデータを送る場合、key - value の形に直すことになりますので、送信したいタグが多ければ多いほど処理は複雑になりますね。
(WEBサーバーを独自でカスタム出来るなら話が変わりますが・・・)

参考までに。

投稿2016/01/22 05:47

編集2016/01/22 05:51
usk

総合スコア397

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

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

nagata_se

2016/01/25 06:05

なるほど・・・今回の環境ですと、WEBサーバーを独自カスタムするのは困難ですが、多少なりとも短くできるなら、この方法でいってみます!ありがとうございました。
guest

0

初めまして。質問者の方の意に沿った回答か確信がありませんが、以下の方法ではいかがでしょうか。
【前提】
・PHPへの送信はsubmitで行う。
・JavaScriptを使っても構わない。
【対応方法】
概要:Submit時にJavaScriptでPHPに渡すクエリパラメータを構成して引き渡す。
手順:
1)SubmitのイベントをJavaScriptの適当な関数でハンドリングする。
2)同関数内でinputタグに指定している属性情報を取得する。
3)同関数内でinputタグの「type="hidden"」として属性情報を引き渡すためのタグをHTMLに挿入する。
4)同関数内でSubmitを実行する。
いかがでしょうか?

投稿2016/01/21 07:20

ownbyown

総合スコア12

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

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

nagata_se

2016/01/21 07:32

早速のご返答、ありがとうございます。 まず、前提条件ですが ・JavaScriptを使っても構わない。 ・送信方法に特に拘りはない という感じです。 hiddenで送信する方法は私も思いついたのですが、作成しているコードの属性の種類がかなり多い(最大で13個)のです。 そのため、hiddenで送ろうとすると、かなり冗長なコードになってしまうため、何か良い手段はないかと模索している次第です。 質問内容に詳細が足らず、申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問