2017-10-20 62 views
0

這可能很簡單,但我無法弄清楚。我正在使用我發現顯示一個計時器的jQuery腳本。然後我想發送一個PHP文件的秒數。下面是腳本,如果我只是警告值變量,它包含正確的數據,所以我正確訪問它,但它到達時它的PHP端空。使用Ajax/jQuery將變量傳遞給PHP

$('.get-timer-btn').on('click', function() { 
    var value = $('.timer').data('seconds'); 
    $.ajax({ 
    type: 'POST', 
    url: 'test.php', 
    data: { value : value }, 
    cache: false, 
    success: function(result){ 
     alert(result); 
    } 
    }); 
}); 

結果顯示警告空在此基礎上測試PHP文件

<?php 
    if (isset($_POST['value'])) { 
    $value = $_POST['value']; 
    echo $value; 
    } else { 
    $value = "Empty!"; 
    echo $value; 
    } 
?> 

我真的很感激一些幫助。

+1

您擁有的代碼應該可以正常工作 - 假設它位於document.ready事件處理程序中並且「value」被正確填充。控制檯中是否有錯誤? –

+0

嘗試將您的值記錄到控制檯,或者其他人嘗試手動設置值,如:value = 10;然後看看它是怎麼回事 –

+0

你在哪裏看到結果在PHP? –

回答

0

我以爲你必須添加一個頭到Ajax對象。 編輯

  1. 變化變數名稱
  2. 檢查URL地址
  3. 添加標題
$('.get-timer-btn').on('click', function() { 
    //change this name ! 
    var value_data = $('.timer').data('seconds'); 
    $.ajax({ 
    type: 'POST', 
    url: 'test.php', //make sure correct address 
    headers: {'Accept': 'application/json'}, //add header is so important 
    data: { value : value_data }, 
    cache: false, 
    success: function(result){ 
     alert(result); 
    } 
    }); 

}); 
+0

如果我只是提醒var,var值是正確的。 該URL是正確的,我得到了從PHP文件回顯「空」 添加標題...沒有改變 – Gary

+0

添加標題部分這是很重要的,'標題:{'接受':'應用程序/ json'}, 「 –

0

您必須結束PHP票數是一個工作例如:

<?php 
    if(isset($_POST['value'])){ 
    $value = $_POST['value']; 
    echo ($value)?$value:'Empty'; 
    die;} 
?> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<p class="timer" data-seconds="2"></p> 
<button class="get-timer-btn">BTN</button> 
<script> 
$('.get-timer-btn').on('click', function() { 
    var value = $('.timer').data('seconds'); 
    $.ajax({ 
    type: 'POST', 
    url: 'test.php', 
    data: { value : value }, 
    cache: false, 
    success: function(result){ 
     alert(result); 
    } 
    }); 
}); 
</script>