2009-03-13 6 views
0

現在、ユーザーが入力した文が予想される文と一致するかどうかを検証しようとしています。予想される文は、PHP変数$rebuiltSentenceに格納されます(例: 'cat sat')。PHPとJavaScriptを使用してセンテンスを検証するにはどうすればよいですか?

問題は、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

このパラメータがPHPで保持する文ではなく、文字列$ rebuiltSentenceを渡しているようです。 follwoing

//sentence.php

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

変更し、それは$ rebuiltSentenceの内容をエコーし​​ます。

+0

使用することができ、そして右ではありません例えばを検証しますアンパサンド – Greg

1

あなたは属性を引用し、それを適切にエスケープする必要があります。

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

あなたは妥当性を検証するために、隠しフィールドとして文を追加することができます。

//sentence.php 

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

とそれが含まれている場合、あなたは、簡単に$ rebuiltSentenceは、単一引用符が含まれている場合、これは動作しません

//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

すごくうれしかった! –

関連する問題