javascript / html / php:是否可以使用Ajax将值插入到表单中?

时间:2012-09-22 15:11:38

标签: ajax forms

我有一个表格,用户可以手动输入一些文字。然后我想让用户通过AJAX从数据库中选择一个标签,这与标签建议在SO问题表单中的显示方式不同。虽然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.

虽然上面的输出在页面上可见,但是当您单击“输入文本和标记”以提交表单时,表单似乎没有找到它。

2 个答案:

答案 0 :(得分:1)

输入标记看起来不完整。试试<input type="text" name="tag" value= "html" />Enter tag。此外,click事件附加到链接标记Get tags,因此您需要单击该链接以进行ajax函数调用。

编辑:

 $('#inserttags').append(xmlhttp.responseText));

答案 1 :(得分:0)

经过更多的研究和深思,我认为你不能做我想做的事情......使用原生的html表单捕获javascript输出,即使表格中有div。相反,这样做的方法是使用javascript捕获文本字段,然后将其放在输出到浏览器的ajax中的表单中,作为隐藏值以及标记。然后用户使用文本和标签提交表单,而不是使用原始html,而是使用ajax输出中的按钮或链接。如果有人知道更好的方法,我会更正,但这种方式会起作用,并且html表单似乎无法识别javascript插入的div中的值。