2016-12-05 40 views
0

我想創建評級系統,而不是使用無線電輸入類型我想使用自定義divs /跨度(包含fontello圖標)。點擊他們應該初始化POST方法,如:

if (isset($_POST['span1'])){ 
/*send to database that user voted 1/5*/ 
} 
if (isset($_POST['span2'])){ 
/*send to database that user voted 2/5*/ 
} 

我發現在其他that solution,hovewer不告知PHP被點擊哪個元素。我怎樣才能做到這一點?

我投票「模板」:

<form name="bald" method = "post"> 
    <span class="ico_style" onclick="bald.submit();" name = "span1">ICO</span> 
    <span class="ico_style" onclick="bald.submit();" name = "span2">ICO</span> 
    <span class="ico_style" onclick="bald.submit();" name = "span3">ICO</span> 
    <span class="ico_style" onclick="bald.submit();" name = "span4">ICO</span> 
    <span class="ico_style" onclick="bald.submit();" name = "span5">ICO</span> 
</form> 
+1

使用單選按鈕男子跨度不輸入字段 – madalinivascu

+0

有什麼錯單選按鈕? – madalinivascu

+0

我說我想要INSTEAD inpit類型,因爲我使用自定義fontello圖標。 – Atex

回答

1

我要發請您使用javascript的強大功能。要傳遞一個值,你需要一個input,它可以被隱藏。使用javascript,您可以處理跨度的點擊並將值傳遞給隱藏的輸入(此處爲rateInput)。

<form method="post" class="rate-form"> 
    <input type="hidden" name="rate" value="" class="rate-input"> 
    <span class="ico_style" data-rate="1">ICO</span> 
    <span class="ico_style" data-rate="2">ICO</span> 
    <span class="ico_style" data-rate="3">ICO</span> 
    <span class="ico_style" data-rate="4">ICO</span> 
    <span class="ico_style" data-rate="5">ICO</span> 
</form> 

<script> 
    function onRate() { 
     var rateInput = document.querySelector('.rate-input'); 
     rateInput.value = this.getAttribute('data-rate'); 
     document.querySelector('.rate-form').submit(); 
    } 
    var spans = document.querySelectorAll('.rate-form .ico_style'); 
    for (var i = 0; i< spans.length; i++) { 
     spans[i].addEventListener("click", onRate, true); 
    } 
</script> 

服務器端:

<?php 
if (isset($_POST['rate'])){ 
    $rate = $_POST['rate']; 
} 
+0

非常感謝。如果我問我是否認爲正確:'.rate-form.ico_style'意味着從表單方法中選擇所有選擇器?我對js不太熟悉。 – Atex

+0

@Atex選擇所有具有'rate-form'類的父類的'ico_style'類元素。類名之間的空間是必不可少的。 – rNix

+0

好吧,我現在明白了。它現在與我的圖標完美結合。再次感謝你的幫助。 – Atex

0

(madalin ivascu)是正確使用單選按鈕,但如果你想使用範圍, 然後 在窗體底部創建一個隱藏的輸入時,在圖標使用jQuery用戶點擊保存,他說裏面輸入選擇哪一個,並檢查它在你的PHP函數

if (isset($_POST['name_of_input'])){ 

}