1

私は自動提案テキストボックスを持っており、魔女は関数でonclickイベントでliタグを生成しますが、php変数をパラメーターとして関数に渡す必要がありますが、ユーザーがクリックしたliの変数値のみが必要で、今では常にループの最後の変数。そして、var テストを $test = $row['t_product']; の値にしたいです。ユーザーがクリックしたliの

これが今使用しているコードです:

    if(isset($_POST['search_term']) == true && empty($_POST['search_term']) == false){    
    $search_term = $_POST['search_term'];
     $customerid = $_SESSION['userdata']['t_customer_id'];

 $conn = connect();
$sql = "SELECT * FROM Licenses WHERE customer_id = '$customerid' AND t_name LIKE '$search_term%'";
$query = sqlsrv_query($conn, $sql);

while(($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) != false){
$test = $row['t_product'];
?>
<script type="text/javascript">
 var test = <?php echo json_encode($test); ?>;
</script>
<?php
        echo '<li onclick="show(test)">', $row['t_name'], '</li>';
         }

}

私は私の問題をうまく説明して、いくつかの衰弱が私を助けることができることを願っています:)

4

2 に答える 2

1

まあ、多分あなたはするべきです:

while(($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) != false){
  $test = $row['t_product'];
?>
<?php
  echo '<li onclick="show("'.$test.'")">', $row['t_name'], '</li>';
}

また

if(isset($_POST['search_term']) == true && empty($_POST['search_term']) == false){ 
  $index = 0;
  $search_term = $_POST['search_term'];
  $customerid = $_SESSION['userdata']['t_customer_id'];

  $conn = connect();
  $sql = "SELECT * FROM Licenses WHERE customer_id = '$customerid' AND t_name LIKE '$search_term%'";
  $query = sqlsrv_query($conn, $sql);

  while(($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) != false){
    $test = $row['t_product'];
?>
    <script type="text/javascript">
      var test<?php echo $index++ ?> = "<?php echo $test; ?>";
    </script>
<?php
    echo '<li onclick="show(test'.$index++.')">', $row['t_name'], '</li>';
  }
}

編集: json_encode を削除し、引用符に置き換えました

于 2012-11-26T12:47:47.310 に答える
0

$test値をidとして各liに渡し、jsでそれを取得することで解決しました

 $test = $row['t_product'];
    echo '<li onclick="show(this)" id="'.$test.'">', $row['t_name'], '</li>'

function show(id){
    alert($(id).attr("id"));}
于 2012-11-26T15:46:18.243 に答える