2016-12-05 7 views
0

ラジオ入力タイプを使用する代わりに、カスタムdivs/span(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

私はカスタムフォントロゴアイコンを使用しているので、私はそれがinpit型をINSTEADしたいと言った。 – Atex

答えて

1

私がしたいあなたのPHP関数にそれをチェックしますあなたが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の上のユーザーのクリックがs彼がその入力内の選択した1保存し

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

} 
関連する問題