使用AJAX从JQuery调用的文件调用文件

时间:2016-11-12 00:33:28

标签: javascript php jquery

我正在尝试从名为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 。我哪里出错或者更好的方法是什么?

感谢

2 个答案:

答案 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?