我目前正在尝试验证用户输入的句子是否与预期句子匹配。期望的句子存储在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);
}
我有什么想法可以解决这个问题吗?
答案 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的内容。