2011-12-28 2 views
0

jQuery의 플러그인 Facebox를 사용하여 양식의 일부 데이터를 처리하는 데 문제가 있습니다. 내가 성취하고자하는 것은 기본적으로 선택된 체크 박스의 수를 배열로 가져 와서 내 팝업에서 PHP로 처리하도록 해줍니다. 나는 폼 페이지에서이 같은 있습니다선택한 체크 박스를 배열에 저장하고 facebox와 함께 사용

form.html

<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" /> 
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" /> 
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" /> 

<input type="button" name="replace" onClick="replace_equip()" /> 

더 체크 박스가 있습니다,하지만 난이 시작하기에 충분 생각합니다.

여기에 내가 test.php에서 PHP 처리를 위해 사용할 수있는 방법으로, 배열로 선택된 체크 박스를 저장하기 위해 노력하고있어

function replace_equip() { 
    var nArr = new Array(); 
    $("input:checkbox[name=equip]:checked").each(function() { 
    nArr.push($(this).val()); 
    $.facebox(function() { 
    $.ajax({ 
     data: { name : nArr }, 
     error: function() { 
     $.facebox("err"); 
     }, 
     success: function(data) { 
     $.facebox(data); 
     }, 
     type: "post", 
     url: "test.php" 
    }); 
    }); 
}); 
} 

replace_equip()입니다.

저는 jquery와 javascript를 일반적으로 사용하기 시작했습니다. 따라서 괴물의 실수를 용서할 수 있습니다!

답변

0

시작하려면 코드에 몇 가지 문체상의 문제가 있습니다. 먼저 new 구문을 배열, 객체 등을 사용하지 않도록 선택해야합니다. Arrayvar array = [];과 같이 선언해야합니다. 둘째, 인라인 onClick을 사용하고 있습니다. jQuery를 이미 사용하는 경우에는 피해야합니다. 대신 $('input[name="replace"]').on('click', function() {...});과 같은 것을 사용하십시오. 함수에 camelCase을 사용하는 것도 고려해야하며 밑줄이 좋으면 vars과 함께 사용하십시오.

이제 질문에 따라주세요. 그래서 같은 코드를 리팩토링 : PHP 코드에서

$('input[name="replace"]').on('click', function() { 
    replaceEquip(); 
}); 

function replaceEquip() { 
    var array = []; 
    $("input:checkbox[name=equip]:checked").each(function() { 
    array.push($(this).val()); 
    }); 

    $.facebox(function() { 
    $.ajax({ 
     type: "POST", 
     url: "test.php", 
     data: { name : array }, 
     error: function() { 
     $.facebox("err"); 
     }, 
     success: function(data) { 
     $.facebox(data); 
     } 
    }); 
    }); 
} 

,이 배열을 json_decode() 당신이 원하는 방법을 함께 작동합니다. 또한 errorsuccess 기능이 상당히 길어질 수 있으므로 typeurl 매개 변수를 맨 위로 이동했습니다.

JavaScript Patterns (적어도 Essentials 장)을 읽는 것이 좋습니다.

+0

리팩토링, 팁, json_decode() 방법 및 도서 권장 주셔서 감사합니다. 학습 곡선 위로 이동 :) –