如果用户没有填写字段,我希望将默认字符串作为关联数组的值。例如“未插入”。如果用户填写该字段,则变量应采用用户放置的值。所以我写了这段代码:
<?php
if (isset($_POST['submit'])){
if (isset($_POST['name'])){
$name =$_POST['name'];
} else {
$name = "not inserted";
}
if (isset($_POST['surname'])){
$surname =$_POST['surname'];
} else {
$surname = "not inserted";
}
if (isset($_POST['job'])) {
$job = $_POST['job'];
} else {
$job = "not inserted";
}
$data = array('name'=>$name, 'surname'=>$surname, 'job'=>$job);
print_r($data);
}
?>
<form action="" method="post">
<input type="text" id="name" name="name"/>
<input type="text" id="surname" name="surname"/>
<input type="text" id="job" name="job"/>
<input type="submit" id="submit" name="submit"/>
</form>
但是如果我没有填写某些字段而不是“未插入”字符串,print_r会显示以下结果:
Array ( [name] => [surname] => [job] => )
请有人告诉我哪里出错了?感谢。
答案 0 :(得分:0)
空白输入仍会发布到表单操作页面,即使它们没有内容也是如此。因此,如果您在将所有字段留空时.npmrc
,那么您会看到以下内容:
public Enemy()
{
int[] xcoordinate = new int[]{40,60,80,100,120,140,160,180,200,220,240,260};
for(int i = 0;i <= xcoordinate.length;i++){
addObject(new enemy(5,5),*sets enemy's x coordinate to a number from an array*,180);
}
}
他们 设置(即它们存在)但是为空。您可以使用var_dump($_POST)
函数检查其中是否有值,如下所示:
array (size=3)
'name' => string '' (length=0)
'surname' => string '' (length=0)
'job' => string '' (length=0)
...
详细了解empty()
如何运作in the documentation。
答案 1 :(得分:0)
这应该按照你想要的方式工作。
<input type="text" id="name" name="name"/>
<input type="text" id="surname" name="surname"/>
<input type="text" id="job" name="job"/>
<input type="submit" id="submit" name="submit"/>
</form>
<?php
if ($_POST['submit']) {
$name = $_POST['name'];
if ($name == "") { $name = "not interested";}
$surname = $_POST['surname'];
if ($surname == "") { $surname = "not interested";}
$job = $_POST['job'];
if ($job == ""){$job = "not interested";}
$data = array('name'=>$name, 'surname'=>$surname, 'job'=>$job);
print_r($data);
}
?>
答案 2 :(得分:0)
除了其他答案,只是为了表明另一种方法,你可以使用三元运算符。哪种方式使它更整洁,但这是一个品味问题。
<?php
$name = ! empty($_POST['name']) ? $_POST['name'] : "not inserted";
$surname = ! empty($_POST['surname']) ? $_POST['surname'] : "not inserted";
$job = ! empty($_POST['job']) ? $_POST['job'] : "not inserted";
$data = array('name' => $name, 'surname' => $surname, 'job' => $job);
?>
顺便说一句......你可以进一步重构它以创建一个可以重用的功能。通常,该函数将进入另一个文件,您将使用这些文件包含使用表单的文件......以及依次开启。
<?php
$name = read_post_value('name', 'not inserted');
$surname = read_post_value('surname', 'not inserted');
$job = read_post_value('job', 'not inserted');
$data = array('name' => $name, 'surname' => $surname, 'job' => $job);
var_dump($_POST); // Debug - Show $_POST contents
var_dump($data); // Debug - Show $data contents
/**
* Read a post entry.
* Assign a default value if it is empty or does not exist
*/
function read_post_value($name, $default_text = '') {
return ! empty($_POST[$name]) ? $_POST[$name] : $default_text;
}
?>