提交后不显示选中的行

Posted

技术标签:

【中文标题】提交后不显示选中的行【英文标题】:Not show checked rows after submit 【发布时间】:2021-12-24 14:54:08 【问题描述】:

我有一个带有复选框和提交按钮的表格。当我选择一些行并单击提交按钮时,这给了我一个 xml 报告。我希望我之前选择的行在我再次看到表格时不再显示。我不想在数据库中删除它们,我只想不再显示它们。有没有办法在 php 或 javascrypt 中做到这一点?

更新: 那是我的桌子:

    <form action="companies.php" method="post" onsubmit='checkform()'>
            <table border=2 style="width:1200px";>                
    <tr>
                        <td class="ttd"><input type="checkbox" value="<?php echo $ff['ID']; ?>" name="chk[]"> </td>
                        <td class="ttd"><?php echo htmlentities($ff['ID']); ?> </td>
                        <td class="ttd"><?php echo htmlentities($ff['Invoice_number']); ?> 
                        <input type="hidden" name="Inum[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Invoice_number']; ?>"></td>
                        <td class="ttd"><?php echo htmlentities($ff['Invoice_date']); ?> </td>
                        <td class="ttd"><?php echo htmlentities($ff['Month']); ?> </td>
                        <td class="ttd"><?php echo htmlentities($ff['Space_name']); ?> 
                        <input type="hidden" name="Sname[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Space_name']; ?>"></td>
                        <td class="ttd"><?php echo htmlentities($ff['Company_name']); ?> 
                        <input type="hidden" name="Cname[<?php echo $kunde['ID']; ?>]" value="<?php echo $ff['Company_name']; ?>"></td>
                        <td class="ttd"><?php echo htmlentities($ff['Amount']); ?> 
                        <input type="hidden" name="amount[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Amount']; ?>"></td>
                        <td class="ttd" style="width:200px;"><?php echo htmlentities($x); ?> 
                        <input type="hidden" name="iban[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Iban']; ?>"></td>
                        <td class="ttd"><?php echo htmlentities($ff['BIC']); ?> 
                        <input type="hidden" name="bic[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['BIC']; ?>"></td>
                    </tr>
    </table>
            <button type="submit" name="submit" value="submit" onclick='sendit()'>submit</button>
</form>

更新 2: 脚本:

document.forms[0].addEventListener("submit", function(event)
        if ( send == 0 )  event.preventDefault(); 
    );
    
function myFunction(el) 
  var hidden = el.previousElementSibling;
  hidden.style.display = 'block';
  hidden.select();
  hidden.setSelectionRange(0, 99999)
  document.execCommand("copy");
  alert("Copied the text: " + hidden.value);
  hidden.style.display = 'none';

  
var send = 0;

function sendit()
      send = 1;
     console.log(send);
  
  
function checkform()
    if (send == 1)
        console.log(send);
        document.form[0].submit();
     else 
        return false;
    

 
  

和 Companies.php 创建一个 xml 文件。

【问题讨论】:

可能是的。但是,如果没有看到您现有的背景,我们无法提出任何具体的建议。请参阅 How to Ask 以获取有关改进问题的提示。像这样的开放式问题往往不会吸引到好的答案 感谢您的代码。但这显然只是图片的一部分。 checkform() 有什么作用?您的 Companies.php 代码是做什么的?您是否自己研究/尝试过任何与尝试解决您的问题有关的事情? 如果 company.php 只是生成一个 XML 文件并直接发送以供下载,那么它永远无法更新您的页面。您需要更改它以进行基于 AJAX 的下载,或在单独的选项卡中打开 Companies.php,以便您可以使用 javascript 更新现有页面。 谢谢,是的,它会生成一个 XML 文件并直接发送以供下载,如果我在单独的选项卡中打开它,java script 怎么样? 您将使用 javascript 打开选项卡。然后在下载时,相同的 javascript 函数将继续更新您的当前页面并删除选定的行。 【参考方案1】:

我必须在数据库中添加一个值为 null 的布尔列,当我单击提交时,将其更改为 1 并通过简单的 if 连接,我之前选择的行不再显示。 所以,这是表格:

<form action="companies.php" method="post" onsubmit='checkform()'>
        <table border=2 style="width:1200px";>
    <?php
     if($ff['checkbox'] == 0)
              
    ?>
                
                <tr>
                    <td class="ttd"><input type="checkbox" value="<?php echo $ff['ID']; ?>" name="chk[]"> </td>
                    <td class="ttd"><?php echo htmlentities($ff['ID']); ?> </td>
                    <td class="ttd"><?php echo htmlentities($ff['Invoice_number']); ?> 
                    <input type="hidden" name="Inum[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Invoice_number']; ?>"></td>
                    <td class="ttd"><?php echo htmlentities($ff['Invoice_date']); ?> </td>
                    <td class="ttd"><?php echo htmlentities($ff['Month']); ?> </td>
                    <td class="ttd"><?php echo htmlentities($ff['Space_name']); ?> 
                    <input type="hidden" name="Sname[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Space_name']; ?>"></td>
                    <td class="ttd"><?php echo htmlentities($ff['Company_Name']); ?> 
                    <input type="hidden" name="Cname[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Company_Name']; ?>"></td>
                    <td class="ttd"><?php echo htmlentities($ff['Amount']); ?> 
                    <input type="hidden" name="amount[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Amount']; ?>"></td>
                    <td class="ttd" style="width:200px;"><?php echo htmlentities($x); ?> 
                    <input type="hidden" name="iban[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Iban']; ?>"></td>
                    <td class="ttd"><?php echo htmlentities($ff['BIC']); ?> 
                    <input type="hidden" name="bic[<?php echo $kunde['ID']; ?>]" value="<?php echo $kunde['BIC']; ?>"></td>
                </tr>
</table>
        <button type="submit" name="submit" value="submit" onclick='sendit()'>submit</button>
        </form>

并在保存 xml 文件之前在 Companies.php 中添加我这个查询:

if ($_POST['submit'])
#### XML file create  
####..... at the End, when all xml attribute to be created ######
$query = "UPDATE ff SET checkbox = 1 WHERE Invoice_number = '$invoice_number'";
            $result = mysqli_query($connection, $query);
         
         
         if($result && mysqli_affected_rows($connection)>= 0)
            $xml->formatOutput = true;
            $xml->save('../includes/xml/'.$filename) or die('XML Create Error') ;
            redirect_to("manage_content.php");
    

【讨论】:

这是您的解决方案吗?如果是这样,请显示修复它的代码,否则对其他人不是那么有用 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于提交后不显示选中的行的主要内容,如果未能解决你的问题,请参考以下文章

(急)将笔记本连接上显示器后不清晰

GitHub提交代码后不显示用户名只显示邮箱

在 Codeigniter 中提交或更新任何内容后不显示更新的数据

更改大小后不显示画布

DataGrid 未选中的行显示为选中

MySQL Workbench 能否在查询结果网格中显示选中的行数?