PHP表单和刷新/存储数据的问题

时间:2014-01-16 02:08:05

标签: php forms validation session

作为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变量的手动指定值。我也会稍后写一个字生成器。

这段代码虽然显然非常基本,但我认为游戏需要的大部分内容,我只是想让提交的东西工作,并且它不会破坏该单词的显示/数组,因为它得到了解决等。

我意识到这是一个措辞不好的问题,但我希望人们能够理解我的问题的本质,并愿意帮助一个菜鸟。

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以在表单提交时调用Javascript函数,并使用它来进行验证。

请参阅此问题:Form Submit Execute Javascript Best Practice?

验证逻辑看起来很简单,因此您应该能够编写一个检查表单数据的JavaScript函数,然后在签出时执行完整的发布。 JavaScript函数还可以操纵页面以显示错误等等。

如果验证需要是服务器端,则需要使用AJAX进行另一次调用,或重新加载整个页面。