我可能完全走错了方向,但请容忍我。。。我有一个很长的访客列表,可以使用foreach
桌子
我想在这个访客列表上放置一个“不显示”按钮,这样在没有管理员的情况下,活动的主持人可以单击(客户端)“不显示”并将票证(自定义帖子)元更新为状态:“不显示”
我发现很多例子都意味着要做一个新的。php页面,供提交按钮链接并运行代码[显然是因为它是服务器端语言]——第一个问题是,一旦他们单击提交按钮,它将转到空白页面(没有真正的HTML输出),而不是返回到他们的事件。。。这不是什么大问题——我想我可以设置重定向,但似乎有点笨重。
第二个问题是,这些示例中的许多都没有考虑A)必须自动生成的多个提交按钮B)为每个按钮触发的不同PHP代码。。。
以下是我需要做的jist:
<form onsubmit="return confirm(\'Do you want to mark <?php echo $FullName ?> as a \'No Show\' - this cannot be undone unless you are an admin\');" method="post" action="<?php HELP ?>">
<input name="NoShow<?php echo $IDuser?>" type="submit" value="No Show" class="button" /> //$IDuser is their user ID to give the values something different on the page. Could also be ticket [post] numbers?
</form>
现在在服务器端,我需要这样的东西来运行:
$tixID = $ticket[\'id\']; //This gets the ticket [custom post] ID number
$StateKey = state; //This is the meta_key that needs changing
$NoShowing = noshow; //This is what it needs to change to.
update_post_meta($tixID , $StateKey , $NoShowing ); #This is the code to change the State: to No Show
?>
所以我想我需要使用一些
if(isset($_POST[\'SUBMIT-BUTTON\'])) {
some_function_called_here();
}
但这是固定的,并正在寻找一个特定的名称-这将是物理上不可能为我键入不同的提交按钮名称,因为这将改变个人门票-其中约6000已在网站上出售。。。此外,调用的函数必须是调用它的按钮所特有的。
任何闪亮的光芒都会很好,因为我感觉自己在这些博客帖子中绕圈子。
编辑:抱歉-请澄清。
我需要做的是。。。
触发器-用户按下客户端按钮列表中的一个按钮。它是使用php和foreach在一个表中生成的,其中列出了为该活动购买的门票。<input name="noshow<?php echo $ticketID ?>" type="submit" value="No Show" class="button" />
操作-每个特定按钮对应一个特定的票证,单击该票证的按钮后,它会运行代码来编辑该票证发布元数据,服务器端。update_post_meta($ticketID , \'state\' , \'noshow\' );
这将更新密钥State:
到noshow
结果-页面将重新加载,您将保持在同一事件页面上这是一个屏幕截图的视觉示例
最合适的回答,由SO网友:Tom J Nowell 整理而成
不必重定向到新页面,您可以使用已经在上的页面,其基本逻辑类似于:
if ( !empty( $_POST[\'ticket_action\'] && ( $_POST[\'ticket_action\'] == \'noshow\' ) ) {
$ticket_post_id = $_POST[\'ticket_post_id\'];
... you probably want to check if the user is logged in or check for a valid nonce here ...
// do whatever it is with the ticket post that you wanted to do here
?>
<p>Success!! Or Error, or some other message dependent on what happened in form processing</p>
<?php
}
.... later on ...
?>
<form method="post" action="">
<input type="hidden" name="ticket_post_id" value="<?php the_ID();?>" />
... you should probably put a nonce here too, search this site for examples and explanations on what they are ...
<input type="hidden" name="ticket_action" value="noshow" />
<input type="submit" value="no show" />
</form>
<?php
也许每个按钮都有一个表单,或者只有一个表单,这部分是一个超出本网站范围的通用PHP/HTML问题(堆栈溢出是合适的位置)