繁体   English   中英

将显示/隐藏和按钮切换到新页面以显示php中的某些记录字段

[英]Toggle display / hide and Button to new page to show certain field of record in php

我希望不显示查询记录的所有字段。 我希望查询中的一个按钮记录到新页面以显示该字段。 和按钮切换显示一个字段。

我无法弄清楚新页面按钮的操作代码。 而且我只能切换显示/隐藏第一条记录。

在这里阅读了一些答案之后,我认为问题应该是记录的ID,我的代码没有为每个记录分配唯一的ID。 似乎我不知道如何解决。 至于新页面的按钮,我卡住了。

下面是到新页面的按钮,以echo $row['contact']

    <?php

    $data = mysqli_query($conn, $query) or die('error');
if(mysqli_num_rows($data) > 0){
while($row = mysqli_fetch_assoc($data)){

    $status = $row['status'];
    $area = $row['area'];
$address = $row['address'];
?>

<tr>
<td><form method="post" name="dataid" value="'.$row->new_id.'"><input 
    type="submit" name="submit1"></form></td>
<td><?php echo $row['status'];?></td>
<td><?php echo $row['area'];?></td>
<td><?php echo $row['address'];?></td>
</tr>   

下面的意思是切换显示/隐藏$row['contact']

     <?php 
     $data = mysqli_query($conn, $query) or die('error');
 if(mysqli_num_rows($data) > 0){
 while($row = mysqli_fetch_assoc($data)){

$status = $row['status'];
    $area = $row['area'];
$address = $row['address'];
?>

    <tr>
<td>
<div id=1 onclick="document.getElementById('body_1').style.display= 
    (document.getElementById('body_1').style.display=='none'? 'block':'none')">Click</div>
<div id="body_1" style="display:none; border:2px solid green;"><?php echo $row['contact'];?></div>

    </td>
<td><?php echo $row['status'];?></td>
    <td><?php echo $row['area'];?></td>
<td><?php echo $row['address'];?></td>                                   
    </tr>   

我的按钮尚无法使用。 并且仅切换显示/仅隐藏第一条记录

我尝试使用此代码来按钮/链接到我的记录的某些字段:

a href =“ detail.php?new_id =”>点击

在detail.php中:

     <?php
     if(isset($_GET['new_id']) && $_GET['new_id'] !== ''){
     $new_id = $_GET['new_id'];
     echo $new_id;
     echo $contact;
     } else {
     echo "failed";
     }
     ?>                                                                                                                                                                    
                                                                                                                             Result : I can display the $new_id, but unable to display $contact

此代码不适用于id “ body_1”的多个div元素的原因有两个:

  • HTML中的id是唯一的。 这意味着,您的DOM可能只有一个具有特定id HTML元素。

  • JS选择器getElementById()将仅返回一个具有指定id元素。 那是因为id应该是唯一的。

如果$row数组包含id元素(如果数据库表中的列具有唯一标识符(id)),则可以使用此值为HTML elements赋予其唯一ID。

我个人并不喜欢使用这样的内联JS代码。 我倾向于将其保存在单独的.js文件中,以提高可读性和缓存目的,但是如果您的行包含可以由$row['id']访问的ID,则以下代码可以为您提供帮助:

$data = mysqli_query($conn, $query) or die('error');

if (mysqli_num_rows($data) > 0) {
while ($row = mysqli_fetch_assoc($data)) {

$status = $row['status'];
$area = $row['area'];
$address = $row['address'];
?>

<tr>
    <td>
        <div onclick="document.getElementById('<?= 'body_' . $row['id'] ?>').style.display= 
    (document.getElementById('<?= 'body_' . $row['id'] ?>').style.display==='none'? 'block':'none')">Click
        </div>
        <div id="<?= 'body_' . $row['id'] ?>" style="display:none; border:2px solid green;"><?php echo $row['contact']; ?></div>

    </td>
    <td><?php echo $row['status']; ?></td>
    <td><?php echo $row['area']; ?></td>
    <td><?php echo $row['address']; ?></td>
</tr>

<?= 'text' ?><?php echo 'text' ?> echo'text <?= 'text' ?>的简写。 我还使用了三等号===而不是==来比较样式属性display是否由于测试平等而将其值设置为“ none”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM