[如何在不使用url的情况下使用php在另一页上发送所选类别

问题描述 投票:0回答:2

您好,我是Web开发的新手。我有两个页面:1. show_category.php(所有类别都显示在这里)2. listing.php(该类别的所有产品在表中显示)第一页显示数据库中的类别。

show_category.php:

 <div class="row">
         <?php 
            include 'connection.php';

            $query="SELECT * FROM subcat WHERE pid='1' ";
            $result=mysqli_query($conn,$query);
            while ($rows=mysqli_fetch_array($result)) {
          ?>
        <div class="col-xl-3 col-md-6 mb-4">
          <div class="card border-left-primary shadow h-100 py-2">
            <a href="javascript:$('#myform_id').submit();">
              <form id="myform_id" method="post" role="form" action="listing.php">
                <div class="card-body">
                  <div class="row no-gutters align-items-center">
                    <div class="col mr-2">
                      <!-- <div class="text-xs font-weight-bold text-primary text-uppercase mb-1">Earnings (Monthly)</div> -->
                      <div class="h5 mb-0 font-weight-bold text-gray-800">
                        <p><?php echo $rows['name'];?>
                            <?php echo $rows['id']; ?> 
                        </p>
                      </div>
                    </div>
                  </div>
                </div>
              </form>
            </a>
          </div>
        </div>
         <?php
            }
          ?>    
      </div>

我尝试过一些东西

<a href="javascript:$('#myform_id').submit();">
              <form id="myform_id" method="post" role="form" action="listing.php">
                <div class="card-body">
                  <div class="row no-gutters align-items-center">
                    <div class="col mr-2">
                      <div class="h5 mb-0 font-weight-bold text-gray-800">
                        <p><?php echo $rows['name'];?>
                            <?php echo $rows['id']; ?> 
                            <input type="hidden" name="name" value="<?php echo $rows['name'];?>">
                            <input type="hidden" name="pid" value="<?php echo $rows['id'];?>">
                        </p>
                      </div>
                    </div>
                  </div>
                </div>
              </form>
            </a>

但是,这始终只在listing.php上发送第一类?如何在Listing.php上获取所选类别的名称和ID

listing.php:

$id=$_POST['id'];$name=$_POST['name'];echo $name;echo $id;
javascript php mysql categories
2个回答
0
投票

您需要$ _POST变量而不是$ _GET变量。

所以在您的while循环内,而不是像这样的链接:

href=products.php?cat_id=$id

然后您可以使用$ _GET在产品页面上进行访问。

您应该有一个表单元素,其中的输入隐藏了$id的值,并且表单本身应该具有method='POST'action='products.php'

然后这将重定向到产品页面,而URL中没有添加位,您可以使用$ _POST进行访问

在这种情况下,循环中的每个项目都需要有一个单独的表单元素。


0
投票

我认为您需要采取稍微不同的方法-您正在为每个类别创建一个新表格,这是不必要的。我会这样]

  1. show_categories.php:遍历子目录行以创建具有GET变量的链接
  2. listings.php:取得GET变量并找到相关的列表

categories.php

include 'connection.php';
$query="SELECT * FROM subcat WHERE pid='1' ";
$result=mysqli_query($conn,$query);
$rows=mysqli_fetch_array($result);

foreach($row as $category) {
    echo "<p><a href=listing.php?id='".$category['id']."'>".$category['name']."</a></p>";
}

listing.php

if(isset($_GET['id']} {
     //get your listings from the database with the category id and display them
}

这假定您的列表表具有一个subcat列,其列的ID为其所链接的类别。

有帮助吗?

© www.soinside.com 2019 - 2024. All rights reserved.