使用Ajax / jQuery将变量传递给PHP

时间:2017-10-20 07:56:39

标签: javascript php jquery ajax

这可能很简单,但我无法弄清楚。我正在使用我发现的jquery脚本来显示计时器。然后我想将秒数发送到PHP文件。下面是脚本,如果我只提醒值变量,它包含正确的数据,所以我正确访问它,但它到达时它在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;
  }
?>

我真的很感激一些帮助。

2 个答案:

答案 0 :(得分:0)

我认为你必须为Ajax对象添加一个头。 修改

  1. 更改var名称
  2. 检查网址
  3. 添加标题
  4. $('.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);
        }
      });
    
    });
    

答案 1 :(得分:0)

你必须结束php hier才是一个有效的例子:

<?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>