2017-10-20 18 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 
    if (isset($_POST['value'])) { 
    $value = $_POST['value']; 
    echo $value; 
    } else { 
    $value = "Empty!"; 
    echo $value; 
    } 
?> 

このテストのPHPファイルに基づいて空にします。

+1

あなたが持っているコードはうまく動作するはずです。それはdocument.readyイベントハンドラ内にあり、 'value'が正しく埋められていると仮定します。コンソールにエラーがありますか? –

+0

あなたの値をコンソールに記録しようとするか、otherwiteが手動で値を設定しようとします。どのようにそれが行く参照してください –

+0

あなたはどこでPHPで結果を見ていますか? –

答えて

0

Ajaxオブジェクトにヘッダーを追加する必要があると思いました。 編集

  1. 変更するvar名前
  2. チェックURLアドレス
  3. あなたは、PHPのhierを終了しなければならないヘッダ
$('.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値は、 URLは正しいですが、私は "Empty"をPHPファイルから返信します ヘッダを追加... no change – Gary

+0

ヘッダ部分を追加すると、これは重要です。 'ヘッダ:{' Accept ':' application/json '}、 ' –

0

を追加加工した例である:

<?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> 
関連する問題