我正在做一个小任务并遇到一个我似乎无法弄清楚的问题。作业由三页组成。第一页包含一个接受用户输入的简单字段。第二页验证该输入,如果有效,则显示第二个输入字段。第三页验证第2页输入,然后将其添加到第1页输入。
我在第2页上使用了隐藏字段来存储第1页输入,以便将其提交到第3页。但是,因为第2页必须仅在前一个输入有效时才显示表单,所以我实现了表单在php条件语句中。所以,我直接引用了将页面1输入作为隐藏字段值的php变量。这是我的第2页代码:
<?php
if (isset($_POST["get_number1"] )) {
$number1 = $_POST['get_number1'];
$button_pressed = $_POST['sbmt'];
$message;
$error1 = false;
if ($number1==null) {
$message = 'ERROR: input field empty';
$error1=true;
}
else if (!is_numeric($number1)) {
$message = 'ERROR: input must be numeric';
$error1=true;
}
else if (strpos((String)$number1,'.')!=null && strlen((String)$number1)-strpos((String)$number1,'.')>4) {
$message = 'ERROR: input must contain 0 to 3 decimals';
$error1=true;
}
else if (!strcmp($button_pressed,"sbmt")){
$message = 'ERROR: submit button not pressed';
$error1 = true;
}
}
?>
<html>
<head>
<title>GetNumber2.html</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<?php
if ($error1==true){
echo $message .'<br>'. '<a href="GetNumber1.html">Return to Form 1</a>';
}
else {
echo 'Your number 1: '.$number1.
' <form action="AddNumbers.php" method="post">
<label>Enter the second number (format : 999999.999) :</label>
<input type="text" name="get_number2">
<input type="submit" name="sbmt" value="SubmitNumber">
<input type="hidden" name="hf_number1" value="$number1";>
</form>
';
}
?>
</body>
</html>
下一页显示隐藏字段值为$ number1,即使我删除了引号。任何提示将不胜感激。谢谢。
答案 0 :(得分:1)
不解析带有'
(单引号)的字符串。
这意味着'
中的任何变量都将被视为字符串。
使用连接,例如:
$str = '<input type="hidden" name="hf_number1" value="' . $number1 . '">';