2017-10-20 123 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>