将js变量发送到php .ajax

时间:2015-06-13 17:22:56

标签: javascript php jquery ajax

我正在尝试定义选项的 id#,并将其声明为变量send to“action.php”,即连接到DB并插入值的文件。 HTML中包含5个id的div块:

 <div class="rate">
 <div id="1" class="b-1 rate-btn"></div>
 <div id="2" class="b-2 rate-btn"></div>
 <div id="3" class="b-3 rate-btn"></div>
 <div id="4" class="b-4 rate-btn"></div>
 <div id="5" class="b-5 rate-btn"></div>
 </div>

anim.js拦截click事件并将变量“therate”声明为点击“id”:

$('.rate-btn').click(function(){    
 var therate = $(this).attr('id');
$('.rate-btn').removeClass('rate-btn-active');
 for (var i = therate; i >= 0; i--) {
$('.b-'+i).addClass('rate-btn-active');
$.ajax({
 type : "POST",
 url  : "action.php",
 data : therate,
 success:function(){alert(therate)}
 });
 };
});

上面代码的第二部分将“therate”var发送到“action.php”。但不幸的是id不=(success:function(){alert(therate)}向我显示每个选择的id#没问题。“action.php”和“anim.js”在同一个文件夹中。我也试过“/action.php “ - 没有运气。问题是anim.js没有将”therate“发送到”action.php“。我确定这真是愚蠢和新手问题,但我不认识它=(请告诉我这个问题谢谢。

1 个答案:

答案 0 :(得分:1)

知道脚本的php部分会有很大帮助。您可以在此决定将哪些数据返回给客户端。通常它会是这样的:

<强> PHP

$therate = $_POST['therate'];
$response = array();
if(isset($therate)){
    $response['status'] = 'success';
    $response['therate'] = $therate;
} else {
    $response['status'] = 'failure';
    $response['message'] = 'Variable therate is not set.'
}

echo json_encode($response);

<强>的jQuery

$.ajax({
   type : "POST",
   url  : "action.php",
   data : {'therate': therate},
   success:function(data){
       var o = $.parseJSON(data);
       if(o.status == 'success'){
           alert(o.therate);
       } else {
           alert(o.message);
       }
   }
});

注意添加了一个密钥标识符,用于我们发送给服务器的数据。这使我们可以轻松地提取后期数据服务器。另请注意&#39;数据&#39;在success函数参数中。这是从服务器返回的实际数据。您将在下面注意到我们可以轻松解析为json,因为我们将json_encode用于传回客户端的数组。

我希望这有帮助!如果您有任何问题,请告诉我。