2013-08-23 3 views
2

저는 케이크가 새롭기 때문에 어느 체크 박스에 체크 표시를했는지에 따라 제품을 표시하기 위해 만드는 사용자 정의 필터로 고민하고 있습니다. 확인란은 사용자가 백엔드에서 생성하는 속성을 기반으로 채워집니다. 그런 다음 선택한 상자의 모든 값을 자바 스크립트가있는 배열로 수집하고 컨트롤러에 게시하지만 어떤 이유로 '$ find_tags '내보기에서 그것을 통해 정의되지 않은 변수. 여기 정확하게 내 JavaScript 및 수집 Ajax와 포스트 그래서 미세 이잖아 여기 cakePHP의 컨트롤러에 아약스를 사용하여 게시 배열

$("#clickme").click(function(event){  
    event.preventDefault(); 
    var searchIDs = $("#checkboxes input:checkbox:checked").map(function(){ 
     return $(this).val(); 
    }).get(); 

    var contentType = "application/x-www-form-urlencoded"; 
    var data = 'data[ID]='+searchIDs; 
    $.post("",data,function(data){ 
     console.log(data); 
    }); 

    }); 

가 어디 가정 메신저 내 컨트롤러 코드 (내 컨트롤러 '데이터'를 방화 때 IM 전기 배열 값을 갖는다) 오류는

if ($this->request->is('post')) { 
    $data = $this->request->data['ID']; 
    $find_tags = array(); 
    $selected_tags = $data; 
    foreach($selected_tags as $tag) 
    { 
     array_push($find_tags,$this->Product->findByTag($tag)); 
     $this->set('find_tags', _($find_tags)); 
    } 
    } 

거짓말 그리고 여기 내가 정의되지 않은 변수를 가져올 경우 내보기 코드 :

foreach($find_tags as $all_tag) 
    { 
    echo $all_tag['Product']['name']; 
    echo '</br>'; 
    } 

어떤 도움이나 제안 것을 find_tags 정말 searchIDs는 ID의 배열이 그냥 배열의 JSON을하고 당신이 잘못 점점 PHP는 측면에서 컨트롤러

$("#clickme").click(function(event){  
    event.preventDefault(); 
    var searchIDs = $("#checkboxes input:checkbox:checked").map(function(){ 
     return $(this).val(); 
    }).get(); 

    var contentType = "application/x-www-form-urlencoded"; 
    var data = 'ids='+JSON.stringify(searchIDs); 
    $.post("controller url",data,function(data){ 
     console.log(data); 
    }); 

    }); 

에 보낼 필요가 지금

+0

'$ data'가 비어 있기 때문에 가능합니다. 왜'data'를 echo하고 반환되는 것을 보지 않습니까? 게시물이 제대로 작동하지 않을 것입니다. CakePHP에서 당신은 http : // mysite.com/controller/function/argument1/argument2와 같이 당신의 URL을 형성해야합니다. – Ohgodwhy

+0

왜 jQuery'post()'함수 매개 변수에 URL/URI가 지정되어 있지 않습니까? –

답변

0

경우 잠시 동안 고민하고 이해할 수있을 변수

if ($this->request->is('post')) { 
    $data = $this->request->data['ids']; 
    $find_tags = array(); 
    $selected_tags = $data; 
    foreach($selected_tags as $tag) 
    { 
     array_push($find_tags,$this->Product->findByTag($tag)); 

    } 
    $this->set('find_tags', _($find_tags)); 
    } 
0

컨트롤러 파일 인코딩을 UTF-8로 변환해야하기 때문입니다.

관련 문제