我正在尝试从名为trough JQuery
的文件中调用服务器端。这很难解释,但我真正在做的是,我调用的文件将像使用JQuery
的窗口一样弹出。然后在该弹出窗口中,我将使用AJAX
调用服务器端文件。
这就是我调用第一个文件的方式:
JQUERY
function AddBill(id) {
$("#displayDIV").show();
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("displayDIV").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","file1.php?",true);
xmlhttp.send();
}
现在我想调用file1.php
AJAX
$(function() {
$("#formAdd").submit(function(e) {
e.preventDefault();
alert();
$.ajax({
url: $(this).attr('action'),
type: "post",
data: $(this).serialize(),
error:function(){
alert("ERROR : CANNOT CONNECT TO SERVER");
},
success: function(data) {
alert(data);
}
});
return false;
});
});
顺便说一下。这是我称之为AddBill()
的地方
<input type="button" class="updateButton" value="ADD BILLED TO" onclick="AddBill()"/>
这是我file1.php
<form id="formAdd" action="server.php" method="POST">
<input type="text" name="text1">
<input type="submit" value="ADD">
</form>
程序未读取 AJAX 。我哪里出错或者更好的方法是什么?
感谢
答案 0 :(得分:1)
查看更新后的问题,在页面上添加内容之前,您的ajax代码可能正在运行:
在你的ajax中试试这个:
$(document).on('submit', "#formAdd", function(e) {
而不是
$("#formAdd").submit(function(e) {
答案 1 :(得分:0)
浏览器不会执行插入DOM的脚本。您应该考虑其他方法来实现这一目标。
你可以包含一个脚本,adn然后注入file1.php
的内容作为例子:
if (this.readyState == 4 && this.status == 200) {
var g = document.createElement('script');
var s = document.getElementsByTagName('script')[0];
g.text = this.responseText;
s.parentNode.insertBefore(g, s);
}
此问题还有其他一些有用的解决方案:Can scripts be inserted with innerHTML?