Dre*_*rew 13 php forms variables isset
我正在创建一个表单,我只是在寻找更有效的方法来做事.到目前为止我所拥有的是:
<p><input type="text" name="transmission" value="" /></p>
<p><input type="text" name="model" value="<?=$model;?>" /></p>
Run Code Online (Sandbox Code Playgroud)
因此,其中一些将具有已设置的值,并且一些将是空白的.我想要做的是查看表单是否已设置,如果它已经使用$ _POST ['name']作为值,如果没有,则使用空白或使用我以前的变量.
<p><input type="text" name="name" value="<?php if isset($_POST['submit'])) { echo $_POST['name']; } else { echo ""; } ?>" /></p>
Run Code Online (Sandbox Code Playgroud)
但必须有一个更短的方法来做到这一点.
如果有人能指出我的方向,我会非常感激.
谢谢!
Naz*_*riy 18
您可以在HTML输出之前在脚本开头定义变量,例如:
$name = isset($_POST['submit']) ? $_POST['name'] : null;
Run Code Online (Sandbox Code Playgroud)
在你的html部分,你可以打印$ name而不用担心它没有被定义
<p><input type="text" name="name" value="<?php echo $name ?>" /></p>
Run Code Online (Sandbox Code Playgroud)
此外,如果$ _POST ['submit']不包含任何值,则更有可能收到FALSE语句.要避免此类问题,请使用array_key_exists
就像Nazariy说的那样,你应该尽可能避免模板中的PHP.
实际上,您应该只在模板中准备好变量.
所以,在你的代码中有这样的东西
$FORM = array();
$form_fields = array('name','sex');
foreach($form_fields as $fname) {
if (isset($_POST[$fname])) {
$FORM[$fname] = htmlspecialchars($_POST[$fname]);
} else {
$FORM[$fname] ='';
}
}
Run Code Online (Sandbox Code Playgroud)
然后你有光滑和整洁的模板:
<p><input type="text" name="name" value="<?=$FORM['name']?>" /></p>
Run Code Online (Sandbox Code Playgroud)