php根据html切换开关显示数据库中的数据
Posted
技术标签:
【中文标题】php根据html切换开关显示数据库中的数据【英文标题】:php display data from database according to html toggle switch 【发布时间】:2019-03-10 13:41:38 【问题描述】:我有一个名为 test.php 的页面,显示 2 种产品,第一种是 Odd,第二种是 Even,页面有一个 html Switch/Toggle
注意(代码工作正常,并根据开关/切换值显示结果)
我有 1 个问题
代码运行正常,但它重复了开关/切换(参见下面的图片)
.
test.php
<?php
require ('../../common.php');
echo "
<html>
<head>
<link rel='stylesheet' href='css/toggleOddEven.css'>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
在页面加载时加载默认的奇数产品
<script type='text/javascript'>
$(window).load(function()
$.ajax(
type:'POST',
url:'test.php',
data:
product_type:'odd'
,
success: function(data)
$('#view').html(data);
);
);
</script>
切换/切换值
<script type='text/javascript'>
$(function()
$('#myonoffswitch').click(function()
if ($('#myonoffswitch').prop('checked'))
$.ajax(
type:'POST',
url:'test.php',
data:
product_type:'even'
,
success: function(data)
$('#view').html(data);
);
else
$.ajax(
type:'POST',
url:'test.php',
data:
product_type:'odd'
,
success: function(data)
$('#view').html(data);
);
);
);
</script>
页面代码的其余部分
</head>
<body>
<div class='onoffswitch'>
<input type='checkbox' name='onoffswitch' class='onoffswitch-checkbox' id='myonoffswitch'>
<label class='onoffswitch-label' for='myonoffswitch'>
<span class='onoffswitch-inner'></span>
<span class='onoffswitch-switch'></span>
</label>
</div>
<div id='view'></div>
</body>
</html>
";
if (isset($_POST['product_type']))
$product_type = $_POST['product_type'];
$allProducts="SELECT * FROM products_tbl
WHERE product_type = :product_type ";
$stmt = $db->prepare($allProducts);
$query_params = array(
':product_type' => $product_type
);
$stmt->execute($query_params);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($data as $value):
echo "
<strong># </strong> <a href='prod?id=".$value['product_name']."'>".$value['product_name']."</a> </br>
";
endforeach;
?>
为什么要重复标签?见下图
odd product (default value)
even product
【问题讨论】:
这里的tag
是什么意思?你能做一个jsfiddle来解释你的问题吗?
@CodeThing jsfiddle 没有解决问题,请参阅附加的错误(它重复的开关/切换我只想要一个切换/切换,它显示 2 作为我附加的图像)我的意思是复选框 @ 987654328@
【参考方案1】:
这是因为您在 test.php 中加载了整个页面,而不仅仅是结果数据。这应该会有所帮助:
if (isset($_POST['product_type']))
--> keep existing code
else
--> Put your large echo into here
echo "
<html>
<head>
<link rel='stylesheet' href='css/toggleOddEven.css'>
...
";
更简洁的解决方案可能是将数据和 UI 拆分为单独的 PHP 文件,并且只请求 PHP 数据。
【讨论】:
标记为已接受 :) 感谢它完美地解决了问题,但是单独的 php 文件是什么意思?以上是关于php根据html切换开关显示数据库中的数据的主要内容,如果未能解决你的问题,请参考以下文章
单击行中的切换按钮时,如何从 mysql select 生成的 php 表中发布?