作为PHP的第一次尝试,我决定尝试制作基本的Hangman游戏。我已经完成了我的大部分逻辑,但是我在解决如何获取用户输入和使用它时遇到了重大问题。
理想情况下,我想要一个带有提交按钮的文本框。我想验证输入以确保只输入小写输入,然后假设它一切正常,然后将字母输入到将在提交表单下方显示的数组中。
基本上我希望将用户输入定向到我的功能,而无需完全刷新页面并丢失所有数据。无论如何还有这个吗?我一直在寻找这个网站,人们似乎推荐的唯一的东西是ajax / jquery和会话,所有这些看起来都很复杂,难以作为初学者学习。我已经尝试过在这个网站上推荐的多项内容,但我无法完全理解它。我只想要一些非常基本的功能,因为这是我学习和理解PHP的最早时期。
<?php
function comparison()
{
$theWord ="test";
$theSplit = str_split($theWord);
$currentWord = array();
$lettersGuessed = array();
$guessAttempts = 7;
$score = 0;
print_r($theSplit)."<br>";
for($i=0;$i<count($theSplit);$i++)
{
$currentWord[$i] = "_";
}
print_r($currentWord)."<br>";
$userLetter = "o";
if (ctype_lower($userLetter))
{
echo "The user-submitted letter is lowercase. Niceness!<br>";
}
else
{
echo "Invalid submission pigeon-face. Only lowercase letters please muches.<br>";
}
if(strpos($theWord,$userLetter) !== false)
{
echo "This word contains the letter ".$userLetter."<br>";
$score++;
}
else
{
echo "This word does not contain the letter ".$userLetter."<br>";
$guessAttempts--;
}
$start = 0;
while(($pos = strpos($theWord, $userLetter, $start)) !== false)
{
$start = $pos + 1;
$currentWord[$pos] = $userLetter;
}
foreach ($currentWord as $letter)
{
echo $letter." ";
}
array_push($lettersGuessed,$userLetter);
//print_r($lettersGuessed);
print_r($score);
print_r($guessAttempts);
}
?>
这是我用于游戏的粗略主要逻辑,但显然我想让用户提交的字母取代我的$ userLetter变量的手动指定值。我也会稍后写一个字生成器。
这段代码虽然显然非常基本,但我认为游戏需要的大部分内容,我只是想让提交的东西工作,并且它不会破坏该单词的显示/数组,因为它得到了解决等。
我意识到这是一个措辞不好的问题,但我希望人们能够理解我的问题的本质,并愿意帮助一个菜鸟。
提前致谢
答案 0 :(得分:2)
您可以在表单提交时调用Javascript函数,并使用它来进行验证。
请参阅此问题:Form Submit Execute Javascript Best Practice?
验证逻辑看起来很简单,因此您应该能够编写一个检查表单数据的JavaScript函数,然后在签出时执行完整的发布。 JavaScript函数还可以操纵页面以显示错误等等。
如果验证需要是服务器端,则需要使用AJAX进行另一次调用,或重新加载整个页面。