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切换开关显示数据库中的数据的主要内容,如果未能解决你的问题,请参考以下文章

3Dmax里面的快捷键都有哪些?

单击行中的切换按钮时,如何从 mysql select 生成的 php 表中发布?

Unity3D 之UGUI 切换开关(toggle)

使用 UIButtons 实现切换开关?

将按钮标签更改为关闭声音的开关,我想显示一个开关(对象,切换)

单击动态按钮后未显示的信息(使用切换)