【发布时间】:2013-03-15 12:12:35
【问题描述】:
我将以下下拉列表作为 HTML 表单的一部分:
Print Options:<br/><select name="printopts">
<option selected=""></option>
<option value="Print Longest Answer">Print Longest Answer</option>
<option value="Print Sorted Order">Print Sorted Order</option>
</select>
如果用户选择“打印最长答案”,我需要我的 php 脚本来执行 strlen() 函数;如果用户选择“打印排序顺序”,我需要执行 strcmp($str1, $str2)。
我了解这些函数的工作原理,只是不确定在脚本中的何处或如何调用它们。任何帮助都会很棒!干杯!
更新:到目前为止,这是我的脚本/表单。它从一些验证检查开始,但我正在尝试研究如何在这些验证检查发生后让下拉框执行 strlen() 和 strcmp() 函数。
<?php
if (isset ($_POST['answer1'], $_POST['answer2'], $_POST['printopts'])) {
$errors = array () ;
$answer1 = $_POST['answer1'];
$answer2 = $_POST['answer2'];
$printopts = $_POST['printopts'];
if (empty($answer1) || empty($answer2) || empty($printopts)) {
$errors[] = 'All fields are required';
} else {
if (strlen($answer1) < 4 ) {
$errors[] = 'Answer 1 is too short! Please Re-enter';
}
if (strlen($answer1) > 6 ) {
$errors[] = 'Answer 1 is too long! Please Re-enter';
}
if (strlen($answer2) < 4) {
$errors[] = 'Answer 2 is too short! Please Re-enter';
}
if (strlen($answer2) > 6) {
$errors[] = 'Answer 2 is too long! Please Re-enter';
}
if (is_numeric($answer1)) {
$errors[] = 'Answer 1 must only contain letters. Please Re-enter';
}
if (is_numeric($answer2)) {
$errors[] = 'Answer 2 must only contain letters. Please Re-enter';
}
if (!empty($errors)) {
foreach ($errors as $error) {
echo '<strong>', $error, '</strong><br/>';
}
}
else {
echo 'Thank you for your answers!';
}
}
}
?>
<form action="test.php" method="post">
<p>
Answer 1:<br/><input type="text" name="answer1"/><br/>
Answer 2:<br/><input type="text" name="answer2"/><br/>
Print Options:<br/><select name="printopts">
<option selected=""></option>
<option value="Print Longest Answer">Print Longest Answer</option>
<option value="Print Sorted Order">Print Sorted Order</option>
</select>
<br/>
</p>
<p><input type="submit" value="Submit" /></p>
</form>
【问题讨论】:
-
在您在这里提问之前,请先进行一些搜索。这方面的例子可以在网络上的任何地方找到。 w3schools.com/php/php_syntax.asp
-
什么脚本?你试过什么?
-
1.你试过什么? 2.可能只是使用数字而不是字符串作为值,即
<option value="1">Print Longest Answer</option> -
请我的朋友,其他人给出一些答案,但您可以像我们中的许多人一样为自己做很多事情。
-
我刚刚将我的 php 脚本添加到原始帖子中。我还没有添加下拉列表的功能,因为我不希望它们干扰我在验证检查工作方面已经取得的进展
标签: php html forms strcmp strlen