[英]Trying to pass a variable from JQuery to PHP
因此,我在這里查看了幾個問題和答案,它們似乎都指向同一方向,但我無法使其正常工作。 。 。
我想從JQuery中的文件中讀取一個變量,向其中添加一個變量,然后將其傳遞給php以將新值寫入該文件。 我有單獨的HTML / JavaScript和PHP文件。
在Javascript中,我有:
$(document).ready(function(){
var data
$.get('scoredir/data.txt', function(data) {
count = parseInt(data);
count = count +1;
});
$.ajax({
type: 'POST',
url: 'savedata.php',
data: { 'numberOfPlays' : count },
success: function (response) {
//alert (response);
}
});
});
在php文件(savedata.php)中,我有:
<?php
$data = $_POST['numberOfPlays'];
file_put_contents("scoredir/data.txt", $data);
?>
似乎php文件只是沒有獲取變量。 有人知道怎么了嗎?
您遇到了典型的異步AJAX問題。 在$.get
命令完成請求之前,您正在運行$.ajax
命令。
要快速修復,請嘗試以下類似方法:
$(document).ready(function(){
var data;
$.get('scoredir/data.txt', function(data) {
count = parseInt(data);
count = count +1;
$.ajax({
type: 'POST',
url: 'savedata.php',
data: { 'numberOfPlays' : count },
success: function (response) {
//alert (response);
}
});
});
});
另外,研究延遲的對象和Promise 。
我認為ajax的行為是異步的,因此其中一個正在完成,而另一個則沒有,或者反之亦然,所以您可以這樣做:
$(document).ready(function(){
$.get('scoredir/data.txt', function(data) {
var count = parseInt(data); // you can declare your variable here
count = count + 1;
$.ajax({
type: 'POST',
url: 'savedata.php',
data: { 'numberOfPlays' : count },
success: function (response) {
//alert (response);
}
});
});
});
我注意到的一件事是,$ .get只是一個簡寫,它已經是一個異步ajax調用。 因此,為了處理該請求的結果(例如count),您的第二個ajax調用需要進入$ .get回調,如下所示:
$(document).ready(function(){
var count;
$.get('http://echo.jsontest.com/key/22', function(data) {
count = parseInt(data.key);
count = count +1;
$.ajax({
type: 'POST',
url: 'savedata.php',
data: { 'numberOfPlays' : count },
success: function (response) {
//alert (response);
}
});
});
});
演示: http : //jsfiddle.net/3Pykx/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.