繁体   English   中英

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

[英]How can I validate a sentence using PHP and JavaScript?

我目前正在尝试验证用户输入的句子是否与期望的句子匹配。 预期的句子存储在PHP变量$rebuiltSentence ,例如“ the 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);
}

有什么想法可以解决这个问题吗?

您应该引用该属性并适当地对其进行转义:

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

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

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

看起来您正在传递字符串$ rebuiltSentence,而不是传递此参数在PHP中的句子。

更改为关注

//sentence.php

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

它将回显$ rebuiltSentence的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM