簡體   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