0

当用户单击我网页上的按钮时,我正在尝试编辑服务器上的文件。我使用 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 脚本。这两个文件彼此相邻,所以我知道这不是问题。

我能做些什么来解决这个问题?

4

3 回答 3

1

更改此行

url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?>

url: 'PlistEditorFunction.php'

看看它是否有效

于 2012-05-04T00:03:37.197 回答
0

有几件事看起来很奇怪。

请确认您调用的 url 确实是您认为的那样。为此,请使用控制台/检查器。我推荐萤火虫。当您进行 ajax 调用时,它将显示您使用 ajax 请求的页面的 url。

如果它是正确的,那么你的 url 参数不是问题。接下来,我将查看 php 文件本身。尝试在 php 文件中抛出一个 echo 语句,以便您的 ajax 响应可以验证它正在运行。无论您在文件中回显什么,PlistEditorFunction.php都将是成功函数中的响应参数

success: function( response ) {
    console.log(response); //should be the echo'd statement of PlistEditorFunction.php
}
于 2012-05-04T00:06:43.537 回答
0

在 mwotton 发表评论后,我发现 ajax 是未定义的。jQuery 是导入的,所以这不是问题。我发现答案是我必须将 $.ajax 更改为 jquery.ajax。

一些主机不使用“$”来表示 jQuery。我的网络主机改用“jquery”。

于 2012-05-07T12:37:47.750 回答