2009-07-01 3 views
1

FormBuilder 응용 프로그램에서 CakePhp 및 jQuery를 사용하고 있습니다. 나는 형태로 입력 한 모든 값을 얻으려면

<form action="/cake_1.2.1.8004/index.php/results/submit1" method="post" 
                  id="ResultSubmit1Form"> 
    <fieldset style="display: none;"> 
     <input type="hidden" value="POST" name="_method"/>  
    </fieldset> 

    <div class="input text"> 
     <label for="1">Doj</label> 
     <input type="text" value="" style="width: 300px;" id="1" name="Doj"/> 
    </div> 

    <div class="input text"> 
     <label for="2">Name</label> 
     <input type="text" value="" style="width: 300px;" id="2" name="Name"/> 
    </div> 
    <div class="input textarea"> 
     <label for="3">Address</label> 
     <textarea style="height: 300px;" id="3" rows="6" cols="30" name="Address"/> 
    </div> 
    <div class="input text"> 
     <label for="4">Age</label> 
     <input type="text" value="" style="width: 200px;" id="4" name="Age"/> 
    </div> 
    <br/><br/> 
    <div class="submit"> 
     <input type="submit" value="submit"/> 
    </div> 
</form> 

같은 형태를 갖는입니다.

jQuery를 양식 플러그인은 내가

function submit1() 
    { 
     echo "In controller ".http_build_query($_POST);//echoes correctly 
    } 
나의 CakePHP의 컨트롤러에서 검색

 _method=POST&Doj=07%2F09%2F2009&Name=aruna&Address=xyz&Age=22 

동일하게

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#submit").eq(0).click(function(){ 

      var serializedFormStr = $("#ResultSubmit1Form :input[value]").serialize(); 
      alert(serializedFormStr); 
      $.ajax({ 
       type: "POST", 
       url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1", 
       data: serializedFormStr, 
       success: function(msg){ 
        alert("Data Saved: " + msg); 
       }//success 
      });//ajax 
     }); 
    });//ready 
</script> 

alert(serializedFormStr); 쇼와 같은 값을 검색하려면 다음 코드를 사용하고 사용

어떻게하면이 쿼리 문자열에서 개별 데이터를 가져올 수 있습니까? 그것을 내 데이터베이스에 저장하십시오. 제발 ..

답변

0

나는 그것을 얻지 않는다. .. 왜 http_build_query를 부르고 있냐? 확실하게 $_POST['Doj']을 볼 필요가 있습니다.

할 수 있습니다 같은 $ _POST를 통해 루프 :

$keys = array_keys($_POST); 
// $keys is now array('Doj', 'Name', 'Address', 'Age') 

가 도움을합니까 :

foreach ($_POST as $key => $value) 
    echo 'The value of ' . $key . ' is ' . $value; 

또는 모든 키의 배열을 얻을?

+0

내가 알고 해달라고 : 내가 명시 적으로 arg_seperator를 매개 변수를 설정 한 후 지금까지 모든 것을 추론 무엇을 위해

확인했다,

도움말 파일의 예는 옵션으로 &ampamp; 표시하지만 작동하지 않았다 fieldname Doj 내 controller.So 필드 이름과 해당 값을 보내고 모두 테이블에 저장할 싶어요. – useranon

1

문제점이 있으며 http_build_query에 "5.1.2 arg_separator 매개 변수가 추가 된 이후"라는 세 가지 인수가 있음을 발견했습니다. (로컬 Ms-windows 파일 : mk : @MSITStore : D : \ Reference \ oq \ php \ php_manual.chm ::/res/function.http-build-query.html as 웹 http://php.net/manual/en/function.http-build-query.php)

내가 $ _POST var 덤프를했을 때 두 번째와 세 번째 varibale 이름이 amp; rowsPerPage와 amp ; startNumber 선두 &은 내가 무엇을하고 있었에서이 작업을 수행했다 어떤 이유를 들어

을 먹게되었다,

$postdata = http_build_query(
    array(
    'whereRequest' => $whereRequest, 
    'rowsPerPage' => '20', 
'startNumber' => '0' 
    ) 
    ,'','&' 
); 

내 경우에는 두 번째 인수 (문자열 인 numeric_prefix)가 필요하지 않았으며 arg_separator 매개 변수를 명시 적으로 '&'으로 설정했습니다. 이는 기본 값입니다. '&'사실

관련 문제