jQuery Load() 和远程 js 文件
jQuery Load() and remote js file
jQuery 1.11.1
我正在将表单加载到选项卡内的 div 中。表单通过 AJAX 提交到 PHP 文件。
一些 jQuery 函数,包括 AJAX 例程,需要被主程序和加载的窗体访问,所以我创建了一个 js 文件,它被两者调用,因为窗体不会否则能够访问主文件中的 javascript。
我在进行故障排除时遇到问题,其中一个问题可能是我真的不确定我在哪个目录中。
我怀疑它可能找不到 DBFunctions.php 文件,因为服务器没有收到请求。但是,我将 url 更改为完整路径,但它仍然失败。单击代码可以正常工作,并且表单可以序列化。然后,什么都没有。
主文件
<div>
<div id="UtilButtons">
<div>
<a class="btn" id="AddAdmin" href="javascript:void(0)">Add Program Admin</a>
</div>
</div>
</div>
pAddPA.php
<div class="SaveButton" id="ProgPAReg" data-formname="AddPA">Register</div>
jQueryEdit.js
$(document).ready(function()
{
$("#AddAdmin").click(function()
{
$("#UtilButtons").hide("slow");
$("#ReturnButton").show();
$("#AddPAFile").show();
$("#AddPAFile").load("include/pAddPA.php?PubCode="+PubCode);
});
// ======================================== //
// S A V E F O R M D A T A //
// ======================================== //
$('.SaveButton').click(function ()
{
var Sec = this.id;
var Name = $("#"+this.id).data('formname');
var Form = $("#"+Name);
var Data = Form.serialize();
Data = Data + "&Sec="+Sec;
console.log(Data);
$.ajax(
{
type: "POST",
url: "http://{path to file}/DBFunctions.php",
data: Data,
dataType: 'JSON',
success: function(data)
{
// Result message
}
});
}
});
DBFunctions.php(只是因为有人可能会要求它......永远不会到这里。
session_start();
#====================================================
include("../include/connect.php");
$Conn = mysql_connect($HOST, $USER, $PASSWORD) or die(mysql_error());
mysql_select_db($DBName, $Conn) or die(mysql_error());
#====================================================
$Log = array();
$Error = array();
$Message = "";
$ErrorCount = 0;
switch($_POST[Sec])
{
case "ProgPAReg":
{
// Save to database
echo json_encode(array("Message"=>$Message, "Log"=>$Log, "Error"=>$Error));
} break;
}
我不太确定加载的文件是否认为它在其本地目录或调用程序中(如果知道的话会很好),但我将完整的 url 路径放入PHP 无论如何都在处理文件,所以应该没有什么区别。由于主程序和加载程序都使用相同的 js 文件 (jQueryEdit.js),我尝试删除该文件并进行测试,这当然会导致相关文件无法运行。
如果有请求发送到服务器,它没有收到。 Web 控制台网络不显示任何内容。 console.log 表明文件已正确序列化。
真正让她感到困惑的是,我看不到从 AJAX 到服务器的任何发送。我仍然不知道为什么会这样。它开始工作了。但我没有得到回应。我从未想过要看的一个地方是我在页面顶部的包含文件,它包含几个函数。该文件指向错误的目录。但是,当找不到时,不会产生任何错误。然后,当主文件试图访问一个函数时,它就失败了。同样,没有错误,所以没有返回任何内容。以后我会先检查我的include是否存在
jQuery 1.11.1 我正在将表单加载到选项卡内的 div 中。表单通过 AJAX 提交到 PHP 文件。 一些 jQuery 函数,包括 AJAX 例程,需要被主程序和加载的窗体访问,所以我创建了一个 js 文件,它被两者调用,因为窗体不会否则能够访问主文件中的 javascript。
我在进行故障排除时遇到问题,其中一个问题可能是我真的不确定我在哪个目录中。 我怀疑它可能找不到 DBFunctions.php 文件,因为服务器没有收到请求。但是,我将 url 更改为完整路径,但它仍然失败。单击代码可以正常工作,并且表单可以序列化。然后,什么都没有。
主文件
<div>
<div id="UtilButtons">
<div>
<a class="btn" id="AddAdmin" href="javascript:void(0)">Add Program Admin</a>
</div>
</div>
</div>
pAddPA.php
<div class="SaveButton" id="ProgPAReg" data-formname="AddPA">Register</div>
jQueryEdit.js
$(document).ready(function()
{
$("#AddAdmin").click(function()
{
$("#UtilButtons").hide("slow");
$("#ReturnButton").show();
$("#AddPAFile").show();
$("#AddPAFile").load("include/pAddPA.php?PubCode="+PubCode);
});
// ======================================== //
// S A V E F O R M D A T A //
// ======================================== //
$('.SaveButton').click(function ()
{
var Sec = this.id;
var Name = $("#"+this.id).data('formname');
var Form = $("#"+Name);
var Data = Form.serialize();
Data = Data + "&Sec="+Sec;
console.log(Data);
$.ajax(
{
type: "POST",
url: "http://{path to file}/DBFunctions.php",
data: Data,
dataType: 'JSON',
success: function(data)
{
// Result message
}
});
}
});
DBFunctions.php(只是因为有人可能会要求它......永远不会到这里。
session_start();
#====================================================
include("../include/connect.php");
$Conn = mysql_connect($HOST, $USER, $PASSWORD) or die(mysql_error());
mysql_select_db($DBName, $Conn) or die(mysql_error());
#====================================================
$Log = array();
$Error = array();
$Message = "";
$ErrorCount = 0;
switch($_POST[Sec])
{
case "ProgPAReg":
{
// Save to database
echo json_encode(array("Message"=>$Message, "Log"=>$Log, "Error"=>$Error));
} break;
}
我不太确定加载的文件是否认为它在其本地目录或调用程序中(如果知道的话会很好),但我将完整的 url 路径放入PHP 无论如何都在处理文件,所以应该没有什么区别。由于主程序和加载程序都使用相同的 js 文件 (jQueryEdit.js),我尝试删除该文件并进行测试,这当然会导致相关文件无法运行。
如果有请求发送到服务器,它没有收到。 Web 控制台网络不显示任何内容。 console.log 表明文件已正确序列化。
真正让她感到困惑的是,我看不到从 AJAX 到服务器的任何发送。我仍然不知道为什么会这样。它开始工作了。但我没有得到回应。我从未想过要看的一个地方是我在页面顶部的包含文件,它包含几个函数。该文件指向错误的目录。但是,当找不到时,不会产生任何错误。然后,当主文件试图访问一个函数时,它就失败了。同样,没有错误,所以没有返回任何内容。以后我会先检查我的include是否存在