我正在为RSVP创建一个PHP表单,我正在尝试将多个$ _POST声明为1个isset变量,但我的代码中一直出现错误,这就是我正在尝试做的事情:
$attendance = isset( $_POST['template-contactform-event'] ) ? $_POST['template-contactform-event'] : '';
$guestname1 = isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] ) ? $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] : '';
所以我的错误发生在第二个声明行$ guestname1我认为它是因为isset之后的第二个昏迷,但我不确定我会如何声明这个?第一行($ attendance)是我想要实现的,但是有两个$ _POST for 1变量。
答案 0 :(得分:2)
虽然isset()可以采用多个参数,但内联iif()不能。
试试这个,我连接了两个参数。
<?php
$attendance = isset( $_POST['template-contactform-event'] ) ? $_POST['template-contactform-event'] : '';
$guestname1 = isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] ) ?
$_POST['template-contactform-guestname1'].' '.$_POST['template-contactform-guestname1r'] : '';
答案 1 :(得分:2)
第一个陈述是对的。 但是第二个逗号有第二个错误。
如果您看一下三元应该构建的方式:
$val = my_test?result_if_true:result_if_false;
你可以isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] )
,因为它会返回一个布尔值。
但不写:$_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']
有第二个参数。因为三元并不期待这个逗号。
如果您想了解更多信息,我发现了这篇文章 https://davidwalsh.name/php-shorthand-if-else-ternary-operators
答案 2 :(得分:1)
您要为一个变量分配2个值,但这不起作用,您必须使用数组。
并且isset()也不是检查用户是否已向表单输入值的方法,因为如果用户提交空白表单,则isset($_POST['smth'])
将返回true,因为索引存在于超级全局$_POST
及其值设置为空字符串。请改用empty()
和数组来存储2个值。