2017-11-13 17 views
0

場所の入札ボタンをクリックすると、コードがラップトップのみに警告するように見えるアイテムの名前を警告したいと思います。誰もPHPスクリプトを介して動的に生成されるdiv値を取得する方法を教えてもらえますか?以下はそのページのコードです。クリックした場所の入札単価の項目の名前をお知らせします。アイテムの詳細を含むデータベースからアイテムの詳細を取得するページが動的に生成されるためです。 HTMLの要素のphpスクリプトによって動的に生成されるdiv値を取得する方法は?

<?php 
 
\t $con = mysqli_connect("localhost","root","*****","bidding") or 
 
\t die(mysqli_error($con)); 
 
\t $select_query = "select * from items"; 
 
\t $select_query_result = mysqli_query($con, $select_query) or 
 
\t die("Query Mistake"); 
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
     <meta charset="utf-8"> 
 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
     <title>Bid</title> 
 
     <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
 
     <link rel="stylesheet" href="materialize/css/materialize.css"/> 
 
     <link rel="stylesheet" type="text/css" href="seperate2.css"> 
 
     <script src="jquery-3.2.1.min.js"></script> 
 
     <script src="materialize/js/materialize.min.js"></script> 
 
     <script type="text/javascript"> 
 
     function post_data(){ 
 
     \t var item_name = document.getElementById("item_name").innerHTML; 
 
     \t alert(item_name); 
 
     } 
 
     </script> 
 
</head> 
 
<body> 
 
\t <div class="container"> 
 
\t \t <h1>Bid</h1> 
 
\t \t <div class="row"> 
 
\t \t \t <?php while($row = mysqli_fetch_array($select_query_result)) { ?> 
 
\t \t \t <div class="col s3" > 
 
\t \t \t \t <div id="item_name"><?php echo"$row[item_name]"?></div> 
 
\t \t \t \t <div id="starting_price"><?php echo"$row[starting_price]"?</div> 
 
\t \t \t \t <div><?php echo"$row[description]"?></div> 
 
\t \t \t \t <button class="btn waves-effect waves-teal" 
 
       onclick="post_data()">Place Bid</button> 
 
\t \t \t </div> 
 
\t \t  <?php } ?> 
 
\t \t </div> 
 
\t </div> 
 
</body> 
 
</html>

+0

あなたが何を求めているのかは分かりませんが、クリックされたDIVを特定したい場合は、そのIDを使用します。 IDを変更できない場合は、同等のデータセットを使用します。または私はあなたの要件を誤解していますか? –

+0

はい、クリックされたDIVを識別したいのですが、DIVは動的に生成されます。DIVをクリックするたびに、他のDIVをクリックしても最初のDIVの名前しか表示されません。 –

答えて

1

IDは一意でなければなりません。クラスを使用します。 ループ内で、一意ではない静的な名前のIDを宣言します。

0

コードには、動的に作成されたDIVにアクセスするためのカウンタが必要です。あなたの<div class="row">ブロックは次のようになります。Javascriptの機能post_data()への呼び出しは、現在そのカウンタが含まれているDIV IDを提供することを

<div class="row"> 
     <?php 
     $divCounter = 0; 
     while($row = mysqli_fetch_array($select_query_result)) { 
     $divCounter += 1; 
     ?> 
     <div class="col s3" > 
      <div id="item_name<?php echo $divCounter; ?>"><?php echo"$row[item_name]"?></div> 
      <div id="starting_price"><?php echo"$row[starting_price]"?</div> 
      <div><?php echo"$row[description]"?></div> 
      <button class="btn waves-effect waves-teal" 
      onclick="post_data('<?php echo 'item_name'.$divCounter; ?>')">Place Bid</button> 
     </div> 
     <?php } ?> 
    </div> 

注意してください。ジョブを完了するために、パラメータ含めるpost_data()を調整:あなたが希望する場合

<script type="text/javascript"> 
    function post_data(divId){ 
     var item_name = document.getElementById(divId).innerHTML; 
     alert(item_name); 
    } 
    </script> 

を、代わりにカウンターを使用して、静的な「ITEM_NAME」で連結した、あなたの代わりに$row[item_name]プロパティを使用することができます。これを行うことができるかどうかは、このプロパティが有効なHTML id属性値として機能できるかどうかによって異なります。

関連する問題