2013-03-13 4 views
1

Jquery로 데이터를 PHP 파일에 전달할 때 $ _REQUEST 배열에 나를 버리는 추가 항목이 포함된다는 점만 제외하면 모두 잘 작동하는 것 같습니다. JQuery와

<form id = "filter"> 
<input class="hook1" type="checkbox" value="115" name="0"> bla blah <br > 
<input class="hook1" type="checkbox" value="116" name="1"> blah blah  <br > 
<input class="hook1" type="checkbox" value="107" name="2"> stil blah blah 
</form> 

이것은 :

<script> 
$(document).ready(function(){ 
$("#filter").change(function() 
{ 
var str = $("#filter").serialize(); 

alert(str); 

$.ajax({ 
     url: "filter_trim.php", 
     type: "POST", 
    dataType:"json", 
     data: str, 
     success: function(data){ 
      // do something with returned data 
     } 
}); 
}); 
}); 
</script> 

위해서 var_dump ($ _ REQUEST) 2 박스를 체크의 방화범 경우이 인쇄되어 사용하는 콘솔을 사용

는 형태 방화범. 위해서 var_dump ($ _ REQUEST) = 어레이 (3) { [1] => 캐릭터 (3) "116" [2] => 캐릭터 (3) "107" [ "SQLiteManager_currentLangue"] => 문자열 (1) "2"

이 마지막 항목의 출처는 어디에도 없습니다. 그것의 정상일지도 모르고 다 지금 나는 그것을 볼 것이다 단지 나가 자료 배열을 통과하고있는 처음이다.

PHP 파일 filter_trim.php가 이와 같이 시작됩니다. 알다시피 나는 array_pop()을 사용하여 $ _REQUEST 배열의 바람직하지 않은 마지막 항목을 제거해야했습니다.

<?php 
$connect = mysql_connect("localhost", "root", "root"); 
mysql_select_db("cars"); 
$trimids = array(); 
var_dump($_REQUEST); 

array_pop($_REQUEST); 
$trimids = $_REQUEST; 
$trimids = implode(",", $trimids); 

모든 입력을 부탁드립니다.

감사

답변

1
당신은 정말 당신의 체크 박스, 그런 식으로, 당신은 당신의 양식을에는 직렬화 할 때, 당신은, 함께이 같은 일을하기 쉬울 것이다 연관 배열을 얻을 것이다에 이름을 할당하는 것이 좋습니다

:

<form id = "filter"> 
<input name="hooks[0]" class="hooks0" type="checkbox" value="115"> bla blah <br > 
<input name="hooks[1]" class="hooks1" type="checkbox" value="116"> blah blah  <br > 
<input name="hooks[2]" class="hooks2" type="checkbox" value="107"> stil blah blah 
</form> 

그런 다음, PHP의 :

$connect = mysql_connect("localhost", "root", "root"); 
mysql_select_db("cars"); 

$trimids = is_array($_REQUEST['hooks']) ? $_REQUEST['hooks'] : array(); 
+0

고마워요, 에반. 각 입력에는 고유 한 이름이 있지만 이름은 이미있었습니다. 나는 너의 접근 방식을 시도 할 것이다. – BernardA

+0

Evan. 귀하의 솔루션이 작동하지 않는 것 같습니다. 파이어 버그는 내가 검사 할 때 3 개의 값 모두를 보여 주지만, $ _REQUEST는 마지막으로 체크 한 값만을 유지합니다. 어레이 (2) { [ "hook1"] => 캐릭터 (3) "107" [ "SQLiteManager_currentLangue"] => 캐릭터 (1) "2" – BernardA

+0

그 방법은 : 여기 $ _REQUEST를 위해서 var_dump()는이고 체크 박스는 Bernard에서 작동합니다. 이름이 모두 같은 경우 하나의 값 (확인되는 값) 만 갖습니다. 아마도 (hook1, hook2 등) 다른 이름을 사용하여 시도해 볼 수 있습니다. – Eva

관련 문제