2013-02-14 3 views
0

텍스트 상자가 있고 링크의 컨트롤러 - 클릭 (submit form)이 아닌 텍스트 상자에 입력 된 값을 사용하고 싶습니다. 그래서 나는 제출할 postlink를 사용해야한다고 가정합니다. 그런데 어떻게 포스트 링크에서 그 텍스트 박스의 가치를 얻습니까? 내가 $this->request->data['Rideoffer']['PickFrom']에 오류가cakephp : 컨트롤러에서 포스트 링크를 통해 텍스트 상자 값 가져 오기

<?php echo $this->Form->postLink(
      'Get Coords', 
      array('action' => 'test', $this->request->data['Rideoffer']['PickFrom']) 
      ); 
     ?> 

: 다음 내 코드입니다. data [ 'Rideoffer'] [ 'PickFrom'] 내 cakephp 텍스트 상자의 이름입니다 (firfox inspect 요소에서 보았습니다). 어떻게 텍스트 상자 값을 가져 옵니까?

+0

텍스트를 클릭하면 javascript를 사용하여 텍스트 상자를 사용하여 양식을 제출하지 마십시오. –

답변

0

FormHelper::postLink 메서드는 텍스트 상자 값을 가져올 방법이 없습니다. postLink 메소드는 자바를 사용하여 숨겨진 양식을 제출하는 <a> 링크 요소를 생성합니다. 당신이 볼 수 있듯이 당신이 <a> 요소를 클릭 할 때

<form action="/posts/delete/16" name="post_511c870e05d25" id="post_511c870e05d25" style="display:none;" method="post"> 
<input type="hidden" name="_method" value="POST"/> 
</form> 
<a href="#" onclick="if (confirm(&#039;Are you sure you want to delete # 16?&#039;)) { document.post_511c870e05d25.submit(); } event.returnValue = false; return false;">Delete</a> 

가, 그것은 숨겨진 입력으로 양식을 제출 : 여기 postLink 밖으로 뱉어 무엇의 예입니다. 매개 변수를 postLink으로 전달하여이 입력이 제출 한 값을 변경할 수 있지만, 사용자가 추가 작업을 수행하지 않고 양식을 수정하여 제출할 수있는 텍스트 상자의 값을 동적으로 가져올 수는 없습니다.

(무거운 약간 더 자바 스크립트 인 하나) 두 개의 유사한 옵션이 있습니다

1) 당신은 자바 스크립트를 사용하고 있기 때문에, 동적에 숨겨진 입력 값을 변경하기 위해 자바 스크립트 (또는 jQuery를) 사용할 수에 상관없이 사용자 유형. Javascript/jQuery는 사용자가 링크를 클릭 할 때 숨겨진 양식 입력을 업데이트하기 때문에 더 잘 수행 할 수 있습니다. postLink 기능을 사용하지 않고 모든 양식을 직접 (또는 Cake의 FormHelper와 함께) 수행하는 것이 더 쉽습니다.

2) postLink 방법을 전혀 사용하지 마십시오. 텍스트 상자 입력을 사용하여 일반 양식을 만들고 postLink을 모방합니다. 특히 양식에 제출 단추가 없을 것입니다. 기본적으로 그냥 뱉어내는 내용 만 복사하면됩니다. 위의 예에서

<form action="test" name="UNIQUE_ID" id="UNIQUE_ID" method="post"> 
<input type="text" name="data[RideOffer][PickFrom]" value="POST"/> 
</form> 
<a href="#" onclick="if (confirm(&#039;This will submit the form.&#039;)) { document.UNIQUE_ID.submit(); } event.returnValue = false; return false;">Click</a> 

참고 동일한 값으로 UNIQUE_ID 일치해야하고 또한 <form> 태그에서 style="display:none;"를 제거해야합니다.

+0

답변 주셔서 감사하지만 첫 번째 옵션을 자세하게 설명 할 수 있습니까? 숨겨진 필드를 업데이트하는 자바 스크립트를 작성하고 숨겨진 필드를 게시 링크에 전달하는 방법은 무엇입니까? – z22

+0

cakephp에서 그 텍스트 상자를 javascript에 어떻게 바인딩합니까? – z22

관련 문제