我真正的问题是为什么JSON会在页面加载时触发?我只希望在按下“提交”按钮时关闭它。
if (isset($_POST['submit'])) // if page is not submitted to itself echo the form
{
if(!$valid_zip){$error_str .= "The zip code you enter must be in the form of '99999' or '99999-9999'\n";}
if(!$valid_phone){$error_str .= "Please enter a 10-digit phone number: '999-999-9999'\n";}
if(!$valid_mobile){$error_str .= "Please enter a 10-digit phone number: '999-999-9999'\n";}
if(!$valid_contrib){$error_str .= "Please enter a valid dollar amount: '0.00'\n";}
if(!$valid_email){$error_str .= "Please enter a valid email address: 'example@example.com'\n";}
if(!$valid_conf) {$error_str .= "Email fields do not match\n";}
?>
<!-- <p><strong>Error: Please Select At Least One List to Sign Up For</strong></p> -->
<script>var error = <?= json_encode($error_str);?>;
alert(error);
</script>
<?}
答案 0 :(得分:5)
IF
There is no element named 'submit' in the _POST array
OR
if $Email is not equal to $ConfirmEmail
OR
$info_str is empty
OR
$valid_email is zero
then do something...mostly split an error to the user.
实际上它会进行错误检查,确保请求通过表单提交,具有与确认电子邮件匹配的有效电子邮件,并且具有非空的$ info_str变量值。
答案 1 :(得分:1)
这是一堆检查,看看是否未设置某些变量/帖子字段,或者Email和ConfirmEmail变量是否不匹配。
分解成碎片:
if( < IF
!isset($_POST['submit']) < NOT (IS SET (POST FIELD 'submit'))
|| < OR
$Email!=$ConfirmEmail < VARIABLE 'Email' IS NOT EQUAL TO VARIABLE 'ConfirmEmail'
|| < OR
!$info_str < NOT (VARIABLE 'info_str' IS A TRUE VALUE)
|| < OR
!$valid_email < NOT (VARIABLE 'valid_email' IS A TRUE VALUE)
)
请注意,由于!
“nots”,许多条件实际上与其他情况相反(即如果$valid_email
实际上是 false则为正测试 value - 例如null
)。
答案 2 :(得分:0)
是表单验证器。如果提交表单并且电子邮件等于预定义的电子邮件,则定义其他变量。
答案 3 :(得分:0)
if ( // if
!isset($_POST['submit']) // 'submit' element in $_POST array is not set
|| // or
$Email != $ConfirmEmail // $Email does not equal $ConfirmEmail
|| // or
!$info_str // $info_str is false
|| // or
!$valid_email // $valid_email is false
)
!
否定值。 'foo'
通常被视为true
,被否定的!'foo'
为false
。 ''
(空字符串)通常被视为false
,被否定的!''
为true
。请参阅PHP type comparison tables和Logical Operators。
答案 4 :(得分:0)
我只需要重新排列构造以解决我的问题。