2013-08-20 5 views
0

현재 모델의 "시나리오"속성에 문제가 있습니다. 문제는 "텍스트"와 "숫자"라는 두 개의 항목이있는 라디오 버튼 목록이 있다는 것입니다. 이 라디오 버튼 목록 아래에 세 개의 키워드 텍스트 필드가 정의되었습니다. 이제 JQuery를 사용하여 해당 키워드 텍스트 필드를 숨기거나 표시합니다 (사용자가 라디오 버튼 목록의 "숫자"항목을 선택하면 해당 키워드 텍스트 필드가 숨겨 짐). 이제 서버 측 유효성 검사를 "대답"텍스트 필드. 사용자가 라디오 버튼 목록의 "숫자"항목을 선택한 경우 대답은 숫자 여야합니다.모델의 시나리오 속성에 대해서

array('answer', 'numerical', 'on'=> 'number'), 
: 나는 다음 문을 추가하여 모델의() 규칙을 변경 다음

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#Task_0_answer_type_0").click(function() { 
      if ($(this).is(":checked")){ 
       $(".keyword").show(); 
       <?php $task->scenario = ''?> 
      } 
     }); 
     $("#Task_0_answer_type_1").click(function() { 
      if ($(this).is(":checked")){ 
       $(".keyword").hide(); 
       <?php $task->scenario = 'number'?> 
      } 
     }); 
    }); 
</script> 

:

나의 현재 계획은 다음과 JQuery와 일부 모델의 시나리오 속성을 지정하는 것입니다

그러나 전혀 작동하지 않습니까? 제발 도와주세요.

미리 감사드립니다.

+0

코드는 이해가되지 않습니다 먼저 scenario'에'설정 '''그러면 당신 아래의 몇 줄은''숫자 ''로 설정됩니다. 이것은 생성 된 자바 스크립트에 전혀 영향을 미치지 않습니다. –

+0

사용자가 라디오 버튼 목록에서 다른 항목을 선택할 때 시나리오 값을 변경하려고합니다. 어쩌면 내가 잘못 했어? 어떤 종류의 제안? – stevenboa

+0

자바 스크립트 블록에서 PHP 코드를 실행할 수 있다고 가정합니다. 실제로 일어나는 일 : 먼저 PHP 블록이 서버에서 평가됩니다. 그들의 출력 (첫 번째는 빈 문자열이고 두 번째는'number')은 자바 스크립트 코드에 남아 있습니다. 그런 다음이 코드는 자바 스크립트가 실행되는 클라이언트로 전송됩니다. –

답변

2

내가 지금하려는 것은 "대답"텍스트 필드에 서버 측 유효성 검사를 추가하는 것입니다. 사용자가 라디오 버튼 목록의 "숫자"항목을 선택한 경우 대답은 숫자 여야합니다.

절대적으로 잘못된 클라이언트 스크립트와 서버 언어를 혼합 한 경우 위의 스크립트에서 PHP 코드의 일부를 제거해야합니다. 당신이 당신의 행동에 양식을 게시 유효성 검증을 수행하기 전에 그냥 거기 전환 할

<select name="Task[options]"> 
     <option value="-1">Select One</option> 
     <option value="1">Answer Type Text</option> 
     <option value="2">Answer Type Number</option> 
</select> 

if($_POST['Task']['options'] == '2'){ 
    $taskModel->setScenario('number'); 
} 
관련 문제