2009-03-13 7 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 문자열을 전달하는 것처럼 보입니다. 때라도

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

그레이트 그레이트 덕분에 완벽하게 감사합니다! –

관련 문제