2013-03-27 4 views
0

전달 누군가가 PHP에서 값 배열을 전달하고 AJAX를 사용하여 검색하는 방법을 알려줄 수 있습니까? 내가 발견 한 것은 단지 PHP에서 단일 값을 전달하는 것입니다.PHP를 사용하여 PHP에서 배열을 PHP로

$success[]; 
$timeout[]; 
$fail[]; 

while($row1 = mysql_fetch_array($masterresult)) 
{ 
    $success[]=$row1[1]; 
    $timeout[]=$row1[2]; 
    $fail[]=$row1[3]; 
} 

echo json_encode(array("a"=>$success,"b"=>$timeout,"c"=>$fail)); 

그리고 아래 AJAX 호출입니다 :

var channel; 
function overall(){ 
    $(".one").show(); 
    $(".two").hide(); 
    $(".three").hide(); 
    $(".four").hide(); 
    window['channel']="overall"; 
    $.ajax({ 
      type:"GET", 
      url:"dash2.php", 
      data:{channel:channel}, 
      dataType:'json', 
      success:function(data){ 
        console.log(data.a); 
        console.log(data.b); 
        console.log(data.c); 
        } 
      }); 
    } 
내가 그나마 배열의 값을 전달하려고 할 때 내 PHP 코드

는 AJAX 측을받는 방법을 알고

이 아약스 호출에 어떻게 PHP 배열 값을 전달해야합니까? 누군가가 코드를 도울 수 있습니까?

+0

언제 자바 스크립트에 배열을 전달 하시겠습니까?PHP를 사용하여 페이지를 작성하는 동안 (이 경우 AJAX의 필요가 없다) 또는 페이지가 사용자에게 표시 한 후 (이 경우 당신은 AJAX를 사용할 필요가?) – Marshall

+0

이 질문에 (또는 사람별로 그것 같이) 여기에 너무 많은 시간을 물었습니다. 그래서 더 이상 재미 있지 않습니다. 사이트에서 검색을 시도 했습니까? 질문에 타이핑 할 때 생기는 "관련"질문을 읽으려고 했습니까? – Spudley

+0

게시 된 코드로 저를 도울 수 있습니까? 내가 json_decode를 선호 –

답변

2

원하는 것은 encode it as JSON입니다.

$yourArray = array('asdf', 'qwer', 'zxcv'); 
echo 'var yourJavaScriptArray = ' . json_encode($yourArray) . ';'; 

이렇게하면 임의의 데이터를 자바 스크립트에서도 안전하게 사용할 수 있습니다.

AJAX에서만이 작업을 수행하는 경우 var 부분이 필요 없습니다. json_encode()에서 바로 출력됩니다.

+0

... HES 씨 인코딩 이상으로에 얻을 방법 쉽게 ... –

+0

당신은 내가 모두 아약스 호출 할 걸 제안 게시 한 코드를 확인할 수 있습니까? –

+0

@jibindcruz, 무엇이 잘못 되었습니까? 당신은 조금 디버깅해야 할 것입니다. 문제가 클라이언트 측 또는 서버 측입니까? 스크립트의 출력을보고 기본 디버깅을 수행하십시오. – Brad

2

가 하나 개의 값 또는 예를 들어 배열에 여러 값이 있는지 여부, 당신은 항상 사용해야합니다 : PHP의 끝에

json_encode($your_php_var) 
+0

OT, 당신은 왜 [이 변화를 거부] 않았다 (http://stackoverflow.com/review/suggested-edits/1791862)? 답안의 코드는 편집자가 수정하려고 시도한 오타가있었습니다. –

+0

@MooingDuck 그것은 당신의 대답을 바꾸기 때문입니다. 개선이 될 수도 있지만, OP가 당신의 답을 바탕으로 더 좋은 해결책을 찾으면, 당신은 답안이 아닌 질문에 그것을 게시해야합니다. – jeroen

+0

나는 그 결정에 내 의견 차이를 말하고 싶었다. 코드의 명백한 오타가 IMO를 수정하도록 허용되어야하며 확실하지 않은 경우 생략 버튼이 있어야합니다. 나는 어쨌든 :-) 많이 생각 –

0
  1. json_encode 배열을.
  2. 추가 작업없이 JSON 객체를 JavaScript로 사용하십시오. JavaScript의 일부입니다.
  3. PHP로 다시 보내면 json_decode PHP로 보내십시오.

참조 : PHP Manual

0

당신은 그것을 위해 jQuery를 함께 조합 JSON을 사용할 수 있습니다. 코드에서 Ajax를

$.get('http://localhost/index.php', 
    function(data) { 
     var response = jQuery.parseJSON(data); 
     console.log(response); 
    } 
); 

<?php 

    $myArray = array('a', 'b'); 
    echo json_encode($myArray); 

?> 

:이 예제는 당신을 도울 것입니다

var channel; 
function overall(){ 
    $(".one").show(); 
    $(".two").hide(); 
    $(".three").hide(); 
    $(".four").hide(); 
    window['channel']="overall"; 
    $.ajax({ 
      type:"GET", 
      url:"dash2.php", 
      data:{channel:channel}, 
      dataType:'json', 
      success:function(data){ 
        console.log(data["a"]); 
        console.log(data["b"]); 
        console.log(data["c"]); 
      } 
    }); 
} 
+0

는 볼 수 있지만 내가 별도로 –

+0

성공 54,67,32 내가 PHP에서 그 사용하여 인덱스에 액세스 할 수 있습니다하지만 난 합격 한 후 그것을 내가 그 값에 액세스 얼마나 아약스에 포함 된 경우처럼 그 값을 원하는? –

+0

색인을 사용합니다. 'data [ "a"]'. – Mati

0

희망. html 형식의 입력 데이터가 있고 AJAX에 의해 보내야 할 필요가 있다고 상상해보십시오. 서버 쪽에서 뭔가를 수행하고 클라이언트 쪽에서 결과를 암송하고 일부 내용을 처리한다고 가정 해보십시오. 여기

<form id="my_form" method="post" action="<?=$ServerSideUrl?>"> 
    <input type="text" name="field_1" value=""> 
    <input type="text" name="field_2" value=""> 
    <input type="text" name="field_3" value=""> 
</form> 

당신이 AJAX 스크립트, 난 당신의 AJAX 그것이 합 경고 완료됩니다 때 서버 측 코드 그래서

<? 
    $data = array(); 
    $data["sum"] = $_POST["field_1"] + $_POST["field_2"] + $_POST["field_3"]; 
    echo my_json_encode($data); 
    return true; 
?> 

입니다 여기에

$('#my_form').ajaxSubmit({ 
     dataType: 'html', 
     error: function() { 
      alert('some error text'); 
     }, 
     complete: function(data) { 
      //data this is the result object which returned from server side 
      //for example you shpold alert the sum of thouse 3 field 
      alert(data.sum); 
     } 
}); 

JQuery와

이 예에서 사용 귀하의 양식에 세 필드의

+0

게시 된 코드로 도와 줄 수 있습니까? –

관련 문제