0

ユーザーがテキストを手動で入力するフォームがあります。次に、SO質問フォームにタグの提案がどのように表示されるかとは異なり、ユーザーがAJAXを介してデータベースからタグを選択できるようにします。ajax呼び出しがタグを配置するdivはフォーム内にありますが、登録されていないようで、タグはフォームによって取得されません。私は自分のコードに何かが欠けていますか、これは不可能ですか、それとも不可能な場合はこれを行うためのより良い方法がありますか?提案をありがとう。

コードは次のとおりです。

html

<form method="post" action="enterdata.php">
<input type="text" name="text">Enter text here.
<div id="inserttags"></div><a href="javascript:void(0);" onclick="getTags()";>Get tags</a>
<form type="button" name="submit" value="Enter Text and Tag">
</form>

javascript

getTags() { 
various Ajax goes here, then
//following line inserts value into div of html
    document.getElementById("inserttags").innerHTML=xmlhttp.responseText;
// a bit more ajax, then following pulls tag from db 
xmlhttp.open("GET","findtags.php",true);
xmlhttp.send();
} //end function

php

//gettags.php
//first pull tag from db.  Then:
echo 'input type="text" name="tag" value= "html">Enter tag';
//above output gets inserted in div and is visible on page.

上記の出力はページに表示されますが、[テキストとタグを入力]をクリックしてフォームを送信すると、フォームがそれを取得していないようです。

4

2 に答える 2

1

入力タグが不完全に見えます。試してみてください<input type="text" name="tag" value= "html" />Enter tag。また、クリックイベントはリンクタグGet tagsに添付されているため、ajax関数を呼び出すにはそのリンクをクリックする必要があります。

編集:

 $('#inserttags').append(xmlhttp.responseText));
于 2012-09-22T15:16:15.397 に答える
0

さらに調査し、熟考した結果、私がやりたかったことはできないと思います...ネイティブのhtmlフォームを使用して、フォーム内にdivがある場合でもjavascriptの出力をキャプチャします。代わりに、これを行う方法は、javascriptを使用してテキストフィールドをキャプチャし、タグとともに非表示の値としてブラウザに出力されるajax内のフォーム内に配置することです。次に、ユーザーは、元のhtmlではなく、ajax出力のボタンまたはリンクを使用して、テキストとタグの両方を使用してフォームを送信します。誰かがより良い方法を知っているなら、私は修正されたままですが、この方法は機能し、htmlフォームはjavascriptによって挿入されたdivの値を認識していないようです。

于 2012-09-22T23:55:28.157 に答える