###実現したいこと
実現したいことは以下になります:
・HTMLドキュメントのエレメントのデータをPHPに送信したい
・送信したいデータは、『class属性"hoge"を持つ幾つかのdivエレメントのstyle属性、id属性、innerHTML属性の値』
・最悪、divに変わる別のエレメント(inputなど)を利用するのでもよい
###調べたこと
「HTMLのデータをPHPに送信する方法」
を調べると、「formのpost送信」のやり方しか出てきません。
これだと、
formタグ内にエレメントを作る
→てきとうにname属性を設定する
→value属性に送りたいデータを書く
→postメソッドでPHPファイルにsubmitする
→name=>valueという形式の連想配列$_POSTで取得
という流れになると思いますが、
このやり方の問題点として、
・value属性の値しか送信できない
・そもそも「divエレメントにはname属性が存在しない」ので、POST送信はできない
というのがあります。
別のやり方を調べると、
file_get_contentsやcURLを組み合わせるやり方がありましたが、
よくわかりませんでした。
どうすれば冒頭に書いたデータの送信を実現できるでしょうか?
ご回答宜しくお願いします。
###追記
maisumakun様のご指摘を受けて
>なぜ、そのような実装をしたいのか
もともと以下のようなことをしたいからです。
「HTMLドキュメント上のある特定のエレメントのデータを、外部のデータベース(あるいはもっと簡易にcsvファイルなど)に保存したい。
必要に応じてそのデータベースに保存したエレメントデータをドキュメントに読み込みたい。理想的にはエレメントを丸ごと保存したいが、無理ならば属性値だけでも構わない」
そのためには、まずDOMエレメントのデータをPHPに送信しなければならない、と思い、質問いたしました。
イメージとしては以下のような感じです。
html
1<form method="post" action="hogehoge.php" > 2<div id="aaa" style="background-color:red" innerHTML="hoge1"> 3<div id="bbb" style="background-color:yellow" innerHTML="hoge2"> 4<button type="submit">送信</button> 5</form>
php
1<?php 2//各divのname、style、value、innerHTMLのデータを、各配列で受け取る 3$for_aaa = スーパーグローバル変数的な何かfor_aaa; 4$for_bbb = スーパーグローバル変数的な何かfor_bbb; 5 6print_r($for_aaa);//Array([0]=>"aaa",[1]=>"rgba=(hoge,hoge,hoge,hoge);",[2]=>"hoge1") 7print_r($for_bbb);//上同様に、2つめのdivエレメントのid,style,innerHTMLの値を要素にもつ配列 8?>
ご回答宜しくお願いします。
###追記 その2
maisumakun様のご回答 及び 2つ目のご指摘を受けて
もっとも、WebサイトはHTMLを直接打ち込む、あるいは何かしらのデータからサーバサイドでHTMLを生成するものですので、わざわざ「ブラウザで表示したHTMLをサーバに送信して保存したい」という状況がどのような場合に必要となるのか、なかなか想像できません(基本的に、サーバにある情報でHTMLは再現できるはずですから)
私は今、JavaScriptを使って、
「ボタンを押すと、ランダムな『能力値』を持ったインスタンスがランダムな時刻に生成されるプログラム(ポケモンやたまごっちみたいな育成ゲーム的なもの)」
を作っているのですが、せっかくHTMLというものがあるし、Web上で利用できればと思い、
・オブジェクト(≒クラス)として、既に存在するDOM(のエレメント)を流用
・インターフェイスとしてHTMLドキュメントを利用
している感じです。
ブラウザを閉じたりリロードしたら、せっかく生まれてきたエレメントたちが消えてしまうのも忍びないので、「セーブ機能」として、
外にデータベースを作って、エレメントのデータ(能力値や育成記録)を保存できれば、と思いました。
ですので、
Webサイトを作る、
というよりかは、
HTMLやDOMを利用したWebアプリを作ろうとしている、
という感じです。
回答4件
あなたの回答
tips
プレビュー