1

我正在使用 HTML/PHP 电子邮件表单的教程,它进行验证和不验证,并展示文本字段和选择字段,但是它不显示复选框。

这是教程的 URL http://net.tutsplus.com/tutorials/html-css-techniques/build-a-neat-html5-powered-contact-form/

文本字段代码看起来像这样

<input type="text" id="phone" name="phone" value="<?php echo ($sr && !$cf['form_ok']) ? $cf['posted_form_data']['phone'] : '' ?>" placeholder="555-555-5555" />

选择看起来像这样

<option value="Select a size" <?php echo ($sr && !$cf['form_ok'] && $cf['posted_form_data']['size'] == 'Select a size') ? "selected='selected'" : '' ?>>Select a size</option>

我想弄清楚在使用复选框时如何使上述语法成为正确的语法。这是我的尝试

<input type="checkbox" id="color" name="color" value="<?php echo ($sr && !$cf['form_ok'] && $cf['posted_form_data']['red'] : '' ?>" />

这是不正确的语法。请注意,我将有多个复选框,并且可能需要在收件人电子邮件中显示 1 个或全部。有人可以帮忙,那会很棒。

4

3 回答 3

2

如果我是正确的,您正在尝试设置选中状态。您在value属性中执行此操作,这是不正确的。假设这是颜色的复选框,red类似这样的语法应该是:

<input type="checkbox" 
       id="color" 
       name="color" 
       value="red"
       <?php echo ($sr && !$cf['form_ok'] && $cf['posted_form_data']['red']) 
                  ? 'checked="checked"'
                  : ''; ?> 
       />

三元运算的一个例子:

// Like asking php a question
(TRUE) ? 'this is true' : 'this is false';
--> 'this is true'

分解为常规的 if/else 语句:

if(TRUE)
{
    echo 'this is true';
}
else
{
    echo 'this is false';
}
--> 'this is true'
于 2013-08-03T23:37:27.020 回答
0

您的三元运算符语法对于复选框不正确:

($sr && !$cf['form_ok'] && $cf['posted_form_data']['red'] : ''

你错过了这?部分,从不关闭括号。这将导致语法错误。

于 2013-08-03T23:35:31.740 回答
0

这些线路也有问题......

<input type="text" id="phone" name="phone" value="<?php echo ($sr && !$cf['form_ok'] ? $cf['posted_form_data']['phone'] : '');?>" placeholder="555-555-5555" />
<option value="Select a size" <?php echo ($sr && !$cf['form_ok'] && $cf['posted_form_data']['size'] == 'Select a size' ? "selected='selected'" : '');?>>Select a size</option>
于 2013-08-03T23:39:22.940 回答