2017-08-17 7 views
1

PHPで使用するために、ブートストラップモーダルボタンの値をdata-value="1"属性で上書きしています。しかし、私のPHPコードはnullです。値は、データベースにチェックするためのIDです。ここでPHPでHTMLボタンのdata-value = "1"を取得する方法は?

if (value matches) { 
    do this 
} else { 
    do this 
} 

は私のコードです:

HTML

<button type="button" class="btn btn-primary" id="bookNow" data-value='1' data-toggle="modal" data-target="#myModal">Book Now</button> 

ブートストラップモーダル

<div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog"> 
     <!-- Modal content--> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title">Confirm Booking</h4> 
      </div> 
      <div class="modal-body"> 
       <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
        <button type="submit" class="btn btn-primary" name="bookMe" value="" id='btnCon' data-value="" >Confirm</button> 
        <input type="submit" class="btn btn-danger" name="reset" value="Cancle" data-dismiss="modal"> 
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

JavascあなたはAJAXでそれを達成できたもののRIPT

<script type="text/javascript"> 
    //value getter 
    var btn = document.getElementById('bookNow'); 
    var modalBtn = document.getElementById('btnCon'); 
    //evnt liestenr 
    btn.addEventListener('click', handleClick); 
    modalBtn.addEventListener('click',handleModal); 
    //event Functions 
    function handleClick (e) { 
     var btn = e.target; 
     var value = btn.dataset.value; 
     var modalBtn = document.getElementById('btnCon'); 
     modalBtn.dataset.value = value; 
    } 
    function handleModal (e) { 
     var btn = e.target; 
     var value = btn.dataset.value; 
     console.log(value); 
    } 
</script> 

PHP

if (isset($_POST['bookMe'] == null)){ 
    echo "data-value is null"; 
} 
+0

私は 'ISSET($ _ POST [「bookMe」] == nullが)'常に '真になると思います'。 – showdev

+0

あなたは、あなたがカップルを共有することができます提供されたもの以外の別のボタンであると私は何を前提とするための異なる値があることを言及? – Steve

答えて

1

data-value年代には、自動的にサーバに送信されません。私はあなたのフォームに隠し入力を使用し、あなたはそれをする必要が何に価値を設定するお勧め:

<input type="hidden" name="bookMe" value="whateverValue" /> 
+0

複数の選択肢がありますか?私は値をハードコードするかどうか私は知っていますか? –

+0

'handleModal'(' var value = btn.getAttribute( 'data-value) ')でidを取得し、次にモーダルの非表示入力の値を' value'に設定します( 'document.querySelector(' [ name = bookMe] ')。value = value') –

+0

これは正しいルートだと思います。この非表示にするデータ値をサーバーに送信する前に保存する必要があります。 – Steve

関連する問題