如何使用PHP和JavaScript验证句子?

时间:2009-03-13 13:48:51

标签: php javascript

我目前正在尝试验证用户输入的句子是否与预期句子匹配。期望的句子存储在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 个答案:

答案 0 :(得分:1)

您应引用属性并正确转义它:

echo '<... onClick="formSubmit(' . htmlspecialchars(json_encode($rebuiltSentence)) . ');">'

答案 1 :(得分:1)

您可以将该句子添加为隐藏字段以进行验证。

//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);
}

答案 2 :(得分:0)

看起来你传递字符串$ rebuiltSentence而不是这个参数在PHP中保存的句子。

更改为以下

// sentence.php

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

它将回显$ rebuiltSentence的内容。