2017-08-15 66 views
2

我是新來的。所以我試圖將客戶端的變量值傳遞給php服務器。我看起來這個問題,並看到很多答案,但其中大多數有關發送表單值。我想要做的是傳遞實際變量值。一個非常簡單的例子(以下按鈕的多個實例):如何將變量值從JS傳遞到PHP(不通過表單)

$("#aam").click(function() { 
     var e = confirm("Are you sure?") 
     if(e == true) 
     { 
      $(this).hide('slow'); 
      counter++; 
     } 
    }); 

每次按鈕被點擊計數器由一個上升(在「如果」檢查)。假設我想獲得計數器值給服務器,應該如何處理。從我的搜索我瞭解AJAX但遺憾的是未能將其調整到我自己的情況...... 我想這是一個AJAX請求:

$("#click_ajax").click(function() { 
    $.ajax({ 
     type: 'post', 
     url: 'c:/xampp/htdocs/abby/test.php', 
     data: {counter} 
    }); 
}); 

有了這個PHP:

<?php 

    $counter = $_POST['counter'];  

    echo $counter 

?> 

不幸的是,沒有工作 - 無論我做什麼,我都會收到一條「注意:未定義索引:計數器在C:\ xampp \ htdocs \ abby \ test.php on line 9」錯誤通過xampp。希望有人能幫助我。在此先感謝,

艾比。

+4

就快,該問題是對象的格式。您只需將其更改爲'data:{counter:counter}'即可。有關AJAX的更多信息,請參閱jQuery文檔:http://api.jquery.com/jquery.ajax。另外請注意,您需要在Web服務器上運行您的代碼。您目前正在將安全錯誤張貼到'File:\\ C:\ ...'路徑(更不用說PHP代碼無法工作)。如果你是谷歌他們,你可以輕鬆地安裝IIS或XAMPP。 –

+0

在它的工作方式是這樣的:'data:{key:value,key2:value2}'所以你需要添加一個值來反擊。 'data:{counter:counter}' – keja

+0

「c:/xampp/htdocs/abby/test.php」不是有效的URL。在這種情況下,PHP將不會執行,並且在嘗試通過ajax調用本地文件時也會遇到安全錯誤。它需要像「http:// localhost ...」等,但根據您的本地Web服務器配置。 – ADyson

回答

0

您不通過Ajax請求發送正確的數據。試試這個:

JS:

var ajaxUrl = 'abby/test.php'; 

$.ajax({ 
    type: "POST", 
    url: ajaxUrl, //check if you get in the ajax file 
    data: { 
    action: "sendCounter", 
    counter: counter 
    } 
}).always(function() { 

}).done(function(data) { 
    console.log(data); // you should get back from the server the counter number 
}); 

PHP(AJAX文件的更優雅的方式):

if (isset($_POST['action'])) 
{ 
    $strAction = $_POST['action']; 
    switch ($strAction) 
    { 
     case 'sendCounter': 
      if (isset($_POST['counter'])) 
      { 
       echo $_POST['counter']; 
      } 
     break; 
    } 
} 

希望這有助於。

+0

謝謝,但這不適合我。我得到了「解析錯誤:語法錯誤,意外'{'在第16行的C:\ xampp \ htdocs \ abby \ test.php中」。我上面上傳的基本PHP代碼,已被其他用戶認可,也給了我一個錯誤:「注意:未定義的索引:在第9行的C:\ xampp \ htdocs \ abby \ test.php中的計數器」。我究竟做錯了什麼?謝謝! –

+0

我錯過了a)如果在案子裏面,我現在就編輯,試試吧。 – ZMBA

+0

謝謝你的時間。現在我沒有收到錯誤,但它仍然不顯示(回顯)任何在PHP頁面上。另外,爲什麼我的基本PHP代碼會引發錯誤?再次感謝Abby –

-2
$("your-form-id or event-any-id").on("click", function(event) 
{ event.preventDefault(); 
    var post = new FormData($("#form-id")); 
    $.ajax({ 
     url: "url", 
     type: "POST OR GET", 
     dataType: "JSON", 
     data: post, 
     processData: false, 
     contentType: false, 
     success: function (data, status) {}, 
     error: function (xhr, desc, err){} 
    }); 
}); 

//更多細節 //網址:https://developer.mozilla.org/en-US/docs/Web/API/FormData/set