如何撰写本文时强调:
isset($fields['firstName'])
? ' value=" ' . e( $fields['firstName'] ) . '"'
: '' ?>
从此: (这是来自包含php的HTML文件)
<input type="text" class="form-control" placeholder="First Name" name="firstName" id="firstName" <?php echo isset($fields['firstName']) ? ' value="' . e($fields['firstName']) . '"' : '' ?>>
进入:(这是来自包含html的php文件)
$output .= '<input type="text" class="form-control" placeholder="Name" id="name" name="name">';
这里的目标是使用第二个语句获得相同的语法,因为我将在函数中返回$ output变量。因此我不能使用第一个语句并希望转换语法。提前感谢您的帮助
这是我需要第一个语句的函数的一部分(焦点在于名称输入值):
function get_special_promos_landing_html ($id, $item, $errors, $success, $fields) {
$output = '';
$output.= '<form name="couponForm" class="couponForm" method="post" action="mail/coupon_form.php" novalidate>';
$output.= '<div class="row">';
$output.= '<div class="col-md-12">';
$output.= '<div class="row control-group">';
$output.= '<div class="form-group col-xs-12 controls">';
$output.= '<input type="text" class="form-control" placeholder="Name" id="name" name="name" required data-validation-required-message="Please enter your name. **need the above syntax here to retain value when I have an error**. ">';
//if name error
if(!empty($errors['name'])) {
$output.= '<div class="error_notice">';
$output.= '<ul>';
$output.= '<li>' . $errors["name"] . '</li> <!--Lists down errors-->';
$output.= '</ul>';
$output.= '</div>';
}
$output.= '</div>';
$output.= '</div>';
$output.= '</div>';
$output.= '<div class="col-md-2">';
$output.= '<div class="row control-group">';
$output.= '<div class="form-group col-xs-12 controls text-center">';
$output.= '<button type="submit" class="btn btn-theme-dark">Submit</button>';
$output.= '</div>';
$output.= '</div>';
$output.= '</div>';
$output.= '</div>';
$output.= '<div id="success"></div>';
$output.= '</form>';
return $output;
}
答案 0 :(得分:1)
喜欢这个吗?
$output .= '<input type="text" class="form-control" placeholder="Name" id="name" name="name" ' . (isset($fields['firstName']) ? ' value="' . e($fields['firstName']) . '"' : '') . '>';
答案 1 :(得分:1)
有点不清楚从哪里获取值,并将其放入函数get_special_promos_landing_html()。
db.RunInTransaction(() =>
{
foreach (CategorySource category in categories)
{
db.Insert(category);
}
Console.Out.WriteLine("Categories: \r\n {0}", categories.Count);
}); db.Commit();
对于上面的代码,如果您使用的是提交按钮,并且希望保留这些值,则需要在代码中的某个位置执行此类操作。
<input type="text" class="form-control" placeholder="First Name" name="firstName" id="firstName" <?php echo isset($fields['firstName']) ? ' value="' . e($fields['firstName']) . '"' : '' ?>>
}
因为提交后您的字段会自动清除。使用$ _POST,您可以将值恢复到字段中。
备选您可以在提交后再次重定向到同一页面,以便再次重新加载您的值。您可以在插入数据库语句等之后将其添加到最后
if ($_POST) {
$somevariable = '<input type="text" class="form-control" placeholder="First Name" name="firstName" id="firstName" value="' . $_POST['firstName'] . '">
答案 2 :(得分:1)
尝试:
$output= '<input type="text" class="form-control" placeholder="Name" id="name" name="name">';
echo $output;
答案 3 :(得分:0)
看起来就像这一行:
<input
type="text"
class="form-control"
placeholder="First Name"
name="firstName"
id="firstName"
<?php
echo isset($fields['firstName']) ?
' value="' . e($fields['firstName']) . '"'
: ''
?>>
您在回显字符串中使用的ternary operator
语法不正确,三元运算符(在echo / print中使用时)应如此表示:
echo (true ? "TRUE" : "FALSE");
而不是:
echo true ? "TRUE" : "FALSE";
我确信您可以看到错误,使用isset
只会返回true OR false
,具体取决于数据。
所以只需在echo周围添加括号,如下所示:
<?php
echo (isset($fields['firstName']) ?
' value="' . e($fields['firstName']) . '"'
: '')
?>>
这应该解决它。 :~)
您要求的内容:
$output .=
"<input type='text'class='form-control' placeholder='First Name' name='firstName' id='firstName'"
. (isset($fields['firstName']) ? " value='{$fields['firstName']}'");
(如果错误请在评论中报告,谢谢)
如果使用PHP&amp; HTML(PHP作为var容器)我建议使用HEREDOC,因为它使您的代码看起来更干净,更容易阅读,示例:(PHP的字符串插值不足以使用三元运算符在HEREDOC内部,但是,您可以预先设置该值,如果Heredoc出现错误,请告诉我,因为Heredoc很痛苦。)
$value = (isset($fields['firstName']) ? "value='{$fields['firstName']'" : "");
$output .= <<<IDENTIFIER_FOR_HEREDOC;
<input
type="text"
class="form-control"
placeholder="First Name"
name="firstName"
id="firstName"
value="{$value}"
IDENTIFIER_FOR_HEREDOC;