<table align = "left">
<?php
if ($_POST["word"] == "ship" )
{
echo "Your answer is correct.";
}
else
{
echo "Sorry, you typed the wrong answer. Try Again!";
}
?>
<tr>
<td> <span id="dummy" onclick="playSound(this,'vowels/ship.mp3');">
<img src="pics/i.jpg" onmouseover="this.src='pics/vowel/ship.jpg';this.width=200;this.height=250" onmouseout="this.src='pics/i.jpg';this.width=100;this.height=150"/>
<form action="act_vowel.php" method="post">
<h2> <font color = "black"> Type the word: <input type="text" name="word"> </h2> </font>
<input type="submit" name="check" value="Answer">
</form>
当我运行此代码时。我总是得到这样的错误:
(Notice: Undefined index: word in C:\xampp\htdocs\dyslexia\sample.php on line 15
Sorry, you typed the wrong answer. )
如何在用户输入答案时设计结果?我希望它更生动。谢谢!
答案 0 :(得分:4)
您需要检查是否定义了POST值:
if (isset($_POST["word"])) {
if ($_POST["word"] == "ship" )
{
echo "Your answer is correct.";
}
else
{
echo "Sorry, you typed the wrong answer. Try Again!";
}
}
答案 1 :(得分:1)
它可能是两者之一:
从你的错误中说出来
(注意:未定义的索引:第15行的C:\ xampp \ htdocs \ dyslexia \ sample.php中的单词 对不起,你输错了答案。 )
而您的表单发布到页面 act_vowel.php“
<form action="act_vowel.php" method="post">
您确定要发布到正确的页面吗?这也可能是错误的根源(不是说它是,但它是可能的)
$_POST["word"]
变量。尝试以下
if(isset($_POST["word"]) && $_POST["word"]=="ship"){ echo "Your answer is correct."; }else{ echo "Sorry, you typed the wrong answer(Or maybe didnt type it :P). Try Again!"; }
答案 2 :(得分:1)
如果所有这些都在同一个PHP页面上,那么当您第一次加载页面时,而不是在将值发布到它之后,您正在检查该值。在尝试回复之前,您需要检查表单帖子是否存在:
if (isset($_POST["check"]))
{
if ($_POST["word"] == "ship" )
{
echo "Your answer is correct.";
}
else
{
echo "Sorry, you typed the wrong answer. Try Again!";
}
}
至于你上次的评论:
如何在用户输入答案时设计结果?我希望它更生动。
您可以做的一件事是检查JavaScript中的拼写而不是PHP,这样就不需要表单帖子了。如果您希望在用户输入时进行此操作,则可以回复keypress
事件。以jQuery为例:
$('input[name=Word]').keypress(function () {
if ($(this).val() == 'ship') {
$('#result').text('Your answer is correct.');
} else {
$('#result').text('Sorry, you typed the wrong answer. Try Again!');
}
});
这将使用响应更新id“result”的元素(您将其放在页面的某个位置):
<span id="result"></span>
但是,响应用户类型的用户体验可能有点尴尬。在输入单词时,他们会一直被告知在完成之前它是错误的,这在输入正确答案时有点负面。
答案 3 :(得分:0)
也改变HTML,你的无效!
在表单中添加一个id,以便您可以使用JavaScript更轻松地操作它
<form action="act_vowel.php" method="post" id="form">
<h2> <font color = "black"> Type the word: </font> </h2>
<input type="text" name="word" />
<input type="submit" name="check" value="Answer" />
</form>
以下内容仅在用户启用了javascript时才有效,但您不太可能遇到禁用该功能的用户,但您应该始终适应所有人!
var form = document.getElementById("form");
form.onsubmit = function () {
if (document.getElementsByName("word")[0].value.toLowerCase() == 'ship') {
alert('Your answer is correct.');
} else {
alert('Sorry, you typed the wrong answer. Try Again!');
return false;
}
}
以适应禁用javascript的用户将以下内容添加到act_vowel.php文件
if (isset($_POST["word"])) {
if (strtolower($_POST["word"]) == "ship" )
{
echo "Your answer is correct.";
}
else
{
echo "Sorry, you typed the wrong answer. Try Again!";
}
}