2014-01-16 2 views
0

как первое предприятие в PHP Я решил попытаться создать базовую игру Hangman. У меня есть большая часть моей логики, поскольку это уже сделано, но я столкнулся с серьезными проблемами в разработке того, как использовать ввод пользователя и использовать его.PHP Проблемы с формами и обновления/хранения данных

В идеале я хотел бы иметь текстовое поле с кнопкой отправки. Я хотел бы проверить вход, чтобы убедиться, что введен только ввод в нижнем регистре, а затем при условии, что все в порядке, затем введите букву в массив, который будет отображаться под формой отправки.

В принципе, я хочу, чтобы пользовательский ввод был направлен на мою функцию без полного обновления страницы и потери всех данных. Есть ли все равно, чтобы пойти об этом? Я просматривал этот сайт, и единственное, что люди, по-видимому, рекомендуют, - это 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. Я также напишу генератор слов позже.

Этот код, хотя, очевидно, является базовым, делает большинство из того, что, по моему мнению, может потребоваться для игры, я бы просто хотел, чтобы работа над сообщением работала и не разрушала отображение/массив слова по мере его решения и т. Д.

Я понимаю, что это немного плохо сформулированный вопрос, но я надеюсь, что люди смогут понять природу моих проблем и готовы помочь noob.

Заранее спасибо

ответ

2

Вы можете вызвать функцию Javascript по форме представления, и использовать, чтобы сделать вашу проверку.

Смотрите этот вопрос: Form Submit Execute Javascript Best Practice?

Логика проверки выглядит довольно просто, так что вы должны быть в состоянии написать функцию JavaScript, которая проверяет данные формы, а затем делает полный пост, если он проверяет. Функция JavaScript также может манипулировать страницей для отображения ошибок и т. Д.

Если валидация должна быть серверной, вам необходимо либо выполнить другой вызов с использованием AJAX, либо перезагрузить всю страницу.

Смежные вопросы