提交后不显示选中的行
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。以上是关于提交后不显示选中的行的主要内容,如果未能解决你的问题,请参考以下文章