当用户点击我网页上的按钮时,我正在尝试编辑服务器上的文件。我使用php生成一个按钮表。 STRING1,STRING2和BOOL是我传递给我的函数的变量。我调用的editPlist()函数被调用,测试alert()显示。问题是php文件是要运行的。我也没有收到任何错误。我似乎无法弄清楚出了什么问题。
示例HTML按钮:
<a href="#" onclick="editPlist('STRING1', 'STRING2', 'BOOL')" class="buttong">1 : Round 1</a>
按钮单击运行此脚本:( url行中的PHP生成我要运行的文件的地址。)
<script type='text/javascript'>
function editPlist(stage, dance, oldValue)
{
alert('test ' + stage + dance + oldValue);
$.ajax({
type: "POST",
url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?>,
data: {"var1" : stage , "var2" : dance , "var3" : oldValue},
success: function(msg){
alert( "Data Saved: " + msg ); //Anything you want
}
});
}
在外部php文件PlistEditorFunction.php中,我尝试记录假错误并加载变量,但错误从未显示。这是php文件的开头:
$msg = 'test error message';
error_log('['.date("F j, Y, g:i a e O").']'.$msg."<br /> \n", 3, $phperrorPath);
if (isset($_POST['data']) and trim($_POST['data']) != '' ) {
$stage = trim($_POST['var1']);
$dance = trim($_POST['var2'])
$oldValue = trim($_POST['var3']);
}
我知道只有在域名与运行ajax的文件匹配时才会运行php脚本。这两个文件是彼此相邻的,所以我知道这不是问题。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
更改此行
url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?>
到
url: 'PlistEditorFunction.php'
看看它是否有效
答案 1 :(得分:0)
有些事情看起来很奇怪。
请确认您拨打的网址实际上是您认为的。为此,请使用控制台/检查器。我推荐萤火虫。当您进行ajax调用时,它将显示您使用ajax请求的页面的URL。
如果它是正确的,那么你的网址参数不是问题。接下来我会看一下php文件本身。尝试在php文件中抛出一个echo语句,这样你的ajax响应就可以验证它是否正在运行。文件PlistEditorFunction.php
中回显的任何内容都将是成功函数中的响应参数
success: function( response ) {
console.log(response); //should be the echo'd statement of PlistEditorFunction.php
}
答案 2 :(得分:0)
在mwotton的评论之后,我发现ajax是未定义的。 jQuery是导入的,所以不是问题所在。我发现答案是我必须将$ .ajax更改为jquery.ajax。
有些主人不会使用&#34; $&#34;表示jQuery。我的网站主机使用&#34; jquery&#34;代替。