簡體   English   中英

使用AJAX運行PHP文件並發送參數

[英]Running a PHP file using AJAX and sending parameters

當用戶單擊網頁上的按鈕時,我正在嘗試編輯服務器上的文件。 我使用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腳本。 這兩個文件彼此相鄰,所以我知道這不是問題。

我該怎么做才能解決此問題?

改變這條線

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

url: 'PlistEditorFunction.php'

看看是否可行

幾件事看起來很奇怪。

請確認您呼叫的網址確實與您認為的一樣。 為此,請使用控制台/檢查器。 我推薦螢火蟲。 當您進行ajax調用時,它將顯示您使用ajax請求的頁面的網址。

如果正確,則您的url參數不是問題。 接下來,我將看一下php文件本身。 嘗試在php文件中引發echo語句,以便您的ajax響應可以驗證其正在運行。 您在文件PlistEditorFunction.php回顯的任何內容都將成為成功函數中的響應參數

success: function( response ) {
    console.log(response); //should be the echo'd statement of PlistEditorFunction.php
}

在mwotton發表評論后,我發現ajax是未定義的。 jQuery是導入的,因此不會出現問題。 我發現答案是我必須將$ .ajax更改為jquery.ajax。

一些主機不使用“ $”來表示jQuery。 我的虛擬主機使用“ jquery”代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM