我有一个自动建议文本框女巫生成带有函数的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>';
}
}
我希望我能很好地解释我的问题并希望有些减弱可以帮助我:)
答案 0 :(得分: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并将其替换为引号
答案 1 :(得分: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"));}