2013-10-14 3 views
4

다중 선택 내부에 양식이 있습니다. 이제jquery serializeArray를 JSON 다중 선택 형식으로 변환

$("#addTrainForm").submit(function(event) { 
    var dataString = $(this).serializeArray(); 
    console.log(dataString); 
    event.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "/index.php/trainings/insertTraining", 
     data: dataString, 
     dataType: 'json', 
     success: function(data) { 
      $("div#addModal").hide(); 
      location.reload(); 
     } 
    }); 
    return false; 
}); 

당신은 내가 얻을 콘솔 로그에 다음 볼 수 있습니다 : 제출에 나는이 기능을 사용하면 options_0 및 options_1 여러 값을 볼 수 있습니다

0: Object 
name: "date" 
value: "14/10/2013 16:22:46" 
__proto__: Object 
1: Object 
name: "pool" 
value: "1" 
__proto__: Object 
2: Object 
name: "repeat_0" 
value: "1" 
__proto__: Object 
3: Object 
name: "distance_0" 
value: "1" 
__proto__: Object 
4: Object 
name: "style_0" 
value: "1" 
__proto__: Object 
5: Object 
name: "change_0" 
value: "1" 
__proto__: Object 
6: Object 
name: "time_0" 
value: "1" 
__proto__: Object 
7: Object 
name: "options_0" 
value: "1" 
__proto__: Object 
8: Object 
name: "options_0" 
value: "2" 
__proto__: Object 
9: Object 
name: "repeat_1" 
value: "2" 
__proto__: Object 
10: Object 
name: "distance_1" 
value: "2" 
__proto__: Object 
11: Object 
name: "style_1" 
value: "1" 
__proto__: Object 
12: Object 
name: "change_1" 
value: "2" 
__proto__: Object 
13: Object 
name: "time_1" 
value: "2" 
__proto__: Object 
14: Object 
name: "options_1" 
value: "4" 
__proto__: Object 
15: Object 
name: "options_1" 
value: "5" 
__proto__: Object 
16: Object 
name: "options_1" 
value: "6" 

.

지금이라고 얻을 PHP 함수에서 나는 모든 포스트 데이터를 읽고 파일에 straght를 쓰기 : 거기에 내 options_0에서

public function insertTraining(){ 
    $data=$this->input->post(); 
    $this->baselib->logIt(print_R($data,true)); 
} 

및 options_1는 마지막 값을 사용할 수 있습니다. 나는 가치의 배열이나 commaseperated 문자열이나 뭔가 더 기대했다. 이 텍스트 파일에 내 로그 모습입니다 :

Array 
(
    [date] => 14/10/2013 16:22:46 
    [pool] => 1 
    [repeat_0] => 1 
    [distance_0] => 1 
    [style_0] => 1 
    [change_0] => 1 
    [time_0] => 1 
    [options_0] => 2 
    [repeat_1] => 2 
    [distance_1] => 2 
    [style_1] => 1 
    [change_1] => 2 
    [time_1] => 2 
    [options_1] => 6 
) 

어떻게 내 PHP 스크립트에 options_0 및 options_1에 대한 모든 값을받을 수 있나요? 내가 이미 (선택 매개 변수 같은) 기능을 사용하는 몇 가지 더 좋은 방법이 있습니까? 또는 모든 값을 arround 사이클을 실행하고 옵션 값을 찾아 배열에 넣은 다음 json으로 PHP로 보내야합니까? 나 자신을 설명하기 위해 관리

희망, 솔루션을 찾을 수 제임스

+0

try var_dump ($ _ POST []); – Hackerman

+0

같은 결과. 나는 var_dump ($ this-> input-> post())를 실행했다. codeIgniter가 $ _POST []를 사용하는 것을 좋아하지 않기 때문에 – James

+0

그리고 var_dump ($ _ POST); ? – Hackerman

답변

4

, 감사합니다. 문제는 jquery 또는 JSON이 아니라 HTML에있는 것입니다. 당신은 여기서

<select multiple id="..." name="foo"> 

당신은 [] foo는 사용해야하고 그 JQuery와 측 값의 배열이 될 것이다 당신이 PHP : 그래서 위의 예제가됩니다에 JSON 때 그것이 머물 것 :

<select multiple id="..." name="foo[]"> 
관련 문제