[英]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.