2015-09-06 44 views
1

我有一個產品頁面,我正在嘗試實施評分系統。如何安全地POST PHP變量與jQuery?

每個產品頁面將有信息:

的productID - 該產品的ID

用戶 - 登錄

的用戶的用戶名我對星級以下HTML:

<fieldset id='ratingStars' class="rating"> 
    <input class="stars" type="radio" id="star5" name="rating" value="5" /> 
    <label class = "full" for="star5" title="Incredibly Powerful - 5 stars"></label> 
    ... 
    <input class="stars" type="radio" id="star1" name="rating" value="1" /> 
    <label class = "full" for="star1" title="Unusable - 1 star"></label> 
</fieldset> 

我有當被點擊的明星之一是被稱爲JavaScript文件,它調用將連接到數據庫的PHP文件並將評分添加到產品中:

$(document).ready(function() { 
    $("#ratingStars .stars").click(function() { 
     $.post('../resources/add_rating_to_product.php',{rate:$(this).val()},function(){ 
     }); 
    }); 
}); 

PHP文件只是連接到數據庫並將評分插入評級表。它預計會發布用戶名,productid和評分的數據。

也許這是一個愚蠢的問題,但我怎麼從JavaScript文件POST數據?我知道如何獲得評級,因爲被點擊的對象,但如何發送其他2,如果他們不在PHP文件的範圍。我該如何安全地做到這一點?

這很可能是我所有的錯誤,所以任何幫助表示讚賞!

+0

你需要通過。通過使用'AJAX'或其他'$ http'服務'post'請求 –

+0

@Valkyrie我的問題是如何? – user2827048

+0

在表單中使用隱藏的輸入作爲產品ID。查看使用Ajax提交表單。 – rybo111

回答

1

您可以序列化您的表單並使用onSubmit事件處理程序。沒有測試過代碼。

給出下列形式:

<form id="ratingsForm" action="../resources/add_rating_to_product.php" method="POST"> 
    <input type="radio" name="rating" value="5" /> 
    <input type="radio" name="rating" value="1" /> 
    <input type="hidden" name="productId" value="<?php echo $productId; ?>" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

您可以使用事件處理程序序列化表單數據和使用AJAX張貼。

$(document).ready(function() { 
    $("#ratingsForm").on("submit", function(){ 
    $.ajax({ 
     type: "POST", 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     success: function(response) { 
     console.log(response); 
     } 
    }); 
    }); 
});