Как я могу проверить предложение, используя PHP и JavaScript? - PullRequest
0 голосов
/ 13 марта 2009

В настоящее время я пытаюсь проверить, соответствует ли предложение, введенное пользователем, ожидаемому предложению. Ожидаемое предложение хранится в переменной PHP $rebuiltSentence, например, 'cat sat'.

Проблема в том, что когда я пытаюсь вызвать мою функцию JavaScript formSubmit(), мне нужно дать ей предложение для проверки, поэтому в идеале я бы вызвал formSubmit ($ rebuiltSentence). Я думаю, что это не сработает, потому что думает, что ему передают несколько отдельных строк.

Вот что у меня есть:

//sentence.php

<input type='button' value='Submit' onClick=formSubmit('$rebuiltSentence')

и

//validate.js
function formSubmit(correct)
{
var contents = document.getElementById('sentenceBuilder').value;
if(contents==correct){

    alert('The Sentences Match');
}else{
    alert('The Sentences Dont Match');
}

window.location.reload(true);
}

Есть идеи, как мне это решить?

Ответы [ 3 ]

1 голос
/ 13 марта 2009

Вы должны заключить атрибут в кавычки и правильно его экранировать:

echo '<... onClick="formSubmit(' . htmlspecialchars(json_encode($rebuiltSentence)) . ');">'
1 голос
/ 13 марта 2009

Вы можете добавить предложение как скрытое поле для проверки.

//sentence.php

<input type='hidden' id=rebuiltSentence value='$rebuildSentence'>
<input type='button' value='Submit' onClick=formSubmit()>

и для проверки вы можете легко использовать

//validate.js
function formSubmit()
{
  var contents = document.getElementById('sentenceBuilder').value;
  var correct  = document.getElementById('rebuiltSentence').value;
  if(contents==correct)
  {
    alert('The Sentences Match');
  }else{
    alert('The Sentences Dont Match');
  }

  window.location.reload(true);
}
0 голосов
/ 13 марта 2009

Похоже, вы передаете строку $ rebuiltSentence, а не предложение, которое этот параметр содержит в PHP.

Перейдите к следующему

// sentence.php

echo "<input type='button' value='Submit' onClick=formSubmit('".$rebuiltSentence."')";

и он будет отображать содержимое $ rebuiltSentence.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...