入力を使用する代わりに、フォーム内の div 要素から値を取得する方法はありますか?
ちょっとばかげた質問だとは思いますが、可能かどうか知りたいだけです。PHP DOMのようなものですか?
または、送信時に div を入力に変更する方法はありますか?
ありがとう、
Javascript を使用すると、フォームを送信する直前に div のコンテンツを (非表示の) 入力に入れることができます。
jQuery では、おおよそ次のようになります。
$('#myForm').submit(function() {
$('#myHiddenInput').val($('#myDiv').html());
});
編集:なぜAJAXについて話しているのですか?この状況では AJAX を使用する必要はありません!
jQueryを使用しない JavaScript ソリューションは次のとおりです。
<script>
function prepareSubmit() {
var payload = document.getElementById("target").innerHTML;
document.getElementById("divContents").value = payload;
return true;
}
</script>
マークアップ:
<form name="test">
<div id="target">Payload</div>
<input type="hidden" id="divContents" name="divContents" />
<input type="submit" onclick="return prepareSubmit()" value="submit" />
</form>
onclick 関数は、submit イベントの前に実行されます。prepareSubmit
実際、 true を返さない限り、フォームは送信されません。div
内容を非表示の入力に挿入します。これが最も簡単な解決策だと思います。フォームの前にスクリプトがロードされていることを確認してください。
PHP コードはサーバー側で処理されるため、基本的にクライアント側の DOM を PHP で操作することはできません。
JavaScript (jQuery で最も簡単な方法) を使用すると、DOM から情報を引き出して、追加フィールドとしてフォーム送信に含めることができます。
jQueryを使用してフォーム送信に追加することを扱うSOに関する質問がたくさんあります。
jQuery を使用して、div 内に情報を投稿します。実行するのは非常に簡単で、数行のコードのみです。
javascript ファイル内で ajax 呼び出しを使用できます。たとえば、この $("#yourdiv").val(); のように div id を呼び出すだけです。これにより、div id にあるものの値が得られます。より具体的な例を挙げてコードの一部を示していただければ、より具体的に説明できるかもしれません。ジム
これをアーカイブする方法は複数あります。
隠しフィールド
非表示の入力フィールドを作成し、送信時にこれらに JavaScript を入力できます
アヤックス
たとえば、jQuery の AJAX ライブラリを使用して、データをシリアル化し、AJAX 経由で投稿します。
入力フィールドのスタイルを設定して、話している div のように見えるようにします
別のオプションは、慣れ親しんだ入力フィールドをそのまま使用し、入力のように見えないようにスタイルを設定することです。
これらの例が必要な場合はお知らせください。