2015-06-13 171 views
0

我試圖定義id#的一個選項,並將其聲明爲變量發送到「action.php」,即連接到DB並插入值的文件。 5的ID在HTML DIV-塊:發送js變量到php .ajax

<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截取點擊事件,並聲明變量 「therate」 爲被點擊 「標識」:

$('.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」。我確信這是非常愚蠢和新手問題,但我不認識它=(請告訴我問題!謝謝。

+0

http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example – epascarello

+0

@Rooger你的問題回答了嗎? – wrxsti

回答

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); 
     } 
    } 
}); 

通知的添加來添加密鑰標識符我們發送到服務器的數據。這使我們能夠輕鬆地提取發佈數據的服務器端。還要注意成功函數參數中的'數據'。這是從服務器返回的實際數據。您將在下面注意到,由於將json_encode用於傳回客戶端的數組,因此我們可以輕鬆解析爲json。

我希望這有助於!如果您有任何問題,請告訴我。