2013-11-29 74 views
0

問題已解決!Ajax函數不發送數據onclick

如何?

所有的錯誤首先是這個:

數據:「率」 + $(「率」)VAL(),

什麼需要得到改變,你都告訴我的權利:

數據:「率=」 +率,或數據:{:速率},

,但也有另一種問題,我的服務器設置以及它需要(我不知道的原因)的absolt到PHP文件的URL而不是親戚。

非常感謝您的時間和您的幫助!


我對評級腳本的onclick元素有些問題。當用戶點擊其中一個字段時,該值應該通過ajax post方法發送。

<li id="rating-boxes-rate" onclick="rateFunction(1)"></li> 
<li id="rating-boxes-rate" onclick="rateFunction(2)"></li> 
<li id="rating-boxes-rate" onclick="rateFunction(3)"></li> 
<li id="rating-boxes-rate" onclick="rateFunction(4)"></li> 
<li id="rating-boxes-rate" onclick="rateFunction(5)"></li> 

的javsscript代碼:

function rateFunction(rate){ 
    $.ajax({ 
     url: '../rate.php',     //rate.php location in parent folder 
     type: 'POST', 
     data: 'rate' + $('rate').val(), 
     success: function(html){ 
        alert('Rating: ' + rate);   //just to check, will be deleted later 
        $('#message_success').html(html); //message div id located in my html to show the outcome 
     } 
    }); 
    return false; 
} 

此時警報被正確顯示可惜的數據沒有得到發送到rate.php它在這一點上是用於測試的簡單的回聲聲明:

$rate = $_POST['rate']; 
echo $rate; 

有沒有人看到我的代碼在哪裏錯了?先謝謝你。

回答

1

通過data a json

data: { 
    rate : rate 
} 

注意,它總是key然後value

<input type="text" id="foo_bar" /> 

data : { 
    foo : "bar", 
    foobar : $("#foo_bar").val() 
} 

然後在你的PHP

$foo = $_POST["foo"] 
$foobar = $_POST["foobar"] 
echo $foo; // shows bar 
echo $foobar; // shows the value of the text box 
+0

也不行。 – StephanBo

+0

它在控制檯中有錯誤嗎? –

2

我不認爲$('rate').val()意味着什麼;並且您想要將速率值(例如 - 1,2,3 ..)傳遞給php。

因此,嘗試這個 -

data: { 
    rate: rate 
}, 

代替 -

data: 'rate' + $('rate').val(), 

在側面說明,你不應該使用unobtrusive javascript -

你可以不喜歡它這 -

<li id="rating-boxes-rate" rate="1"></li> 
... 

<script> 
$("#rating-boxes-rate").click(function(e) { 
    var rate=$(this).attr('rate'); 
    $.ajax({ 
    url: '../rate.php',     //rate.php location in parent folder 
    type: 'POST', 
    data: {rate: rate}, 
    success: function(html){ 
     alert(html); 
    } 
}); 
}); 
+0

不幸運行。我在這個問題上困擾了12個小時:-( – StephanBo

+0

你在'html' console.log(html)'中得到了什麼?' –

+0

未捕獲的SyntaxError:意外的標記 – StephanBo

1

入住這一點 -

function rateFunction(rate){ 


     $.ajax({ 
      url: '../rate.php',     //rate.php location in parent folder 
      type: 'POST', 
      data: { rate : rate}, 
      success: function(html){ 
       alert('Rating: ' + this_rate);   //just to check, will be deleted later 
       $('#message_success').html(html); //message div id located in my html to show the outcome 
      } 
     }); 
     return false; 
} 
+0

你可以請控制檯日誌和粘貼什麼HTML作爲響應返回ajax請求的成功? –

+0

已經嘗試過,但沒有成功。但是,無論如何感謝... – StephanBo

+0

資源解釋爲腳本,但與MIME類型文本/ HTML傳輸: – StephanBo

1

的選擇$('rate')試圖尋找其類型爲rate,它更可能不會在你的標記存在的節點。

由於您將函數中的參數作爲參數傳遞,爲什麼不直接將它傳遞給您的ajax請求?

$.ajax({ 
    url: '../rate.php', 
    type: 'POST', 
    data: {"rate": rate}, 
    success: function(response) { 
     alert(response); 
    } 
}); 
1

請儘量

data 
{ 
rate:rate 
}, 

它會工作的

1

代替

data: 'rate' + $('rate').val() 

使用

data: {'rate': rate} 

data: 'rate=' + rate