IT

PHP와 Ajax를 사용하여 배열을 Javascript로 전달하는 방법은 무엇입니까?

itgroup 2023. 8. 21. 21:06
반응형

PHP와 Ajax를 사용하여 배열을 Javascript로 전달하는 방법은 무엇입니까?

이 설명이 명확하지 않다면 죄송합니다, 저도 이해하기 어렵습니다.어떻게 하면 PHP와 Ajax를 사용하여 자바스크립트로 배열을 보낼 수 있습니까?Ajax를 사용하여 사진 배열을 가져오는 중입니다. 그러면 빈 사진에 추가하려고 합니다.<div>내 페이지에

jQuery는 다음과 같습니다.

$.ajax({
    url: "<?php echo site_url('demo/getPhotos/'); ?>",
    type: 'POST',
    data: form_data,
    success: function(data) {
        alert(data);
   }

그리고 PHP 함수 getPhotos는 다음과 같습니다.

<?php

$photos = array();

foreach ($data as $photo) {
    array_push($photos,$photo['source']);
    }

// echo json_encode($photos); How should I be returning $photos?

내가 간단하게echo $photos;데이터가 성공 콜백으로 전송되지만 사용 가능한 형식이 아닌 것 같습니다.

내가 만약에var_dump($photos)PHP에서 결과는 다음과 같습니다.

array(4) {
  [0]=>
  string(14) "some_image.jpg"
  [1]=>
  string(14) "some_image.jpg"
  [2]=>
  string(14) "some_image.jpg"
  [3]=>
  string(14) "some_image.jpg"
}

저는 다양한 조합을 시도해 보았습니다.json_encode그리고 비슷하지만 정말 추측하고 있지만 그 이면의 이론은 확실하지 않습니다.이러한 맥락에서 PHP에서 Javascript로 데이터를 전달하는 가장 좋은 방법은 무엇입니까?

시도:

$.ajax({
    url: "<?php echo site_url('demo/getPhotos/'); ?>",
    type: 'POST',
    data: form_data,
    dataType:"json",
    success: function(data) {
        alert(data[0]);
   }

PHP 쪽에서는 다음과 같이 인쇄할 수 있습니다.

print json_encode($photos);

코드를 더 잘 캡슐화하고 JSON의 장점을 더 잘 보여주기 위해 시도할 수 있는 또 다른 방법은 다음과 같습니다.

print json_encode(array("photolist"=>$photos,"photo_owner"=>"Me!"));

그런 다음 서버에서 다음을 사용하여 액세스할 수 있습니다.

data.photolist[0]; //First photo
data.photo_owner;  //The owner of the photo set

나는 배열을 만들었습니다.$resultPHP에서 그리고 요청의 끝에.

 echo json_encode($result); 

그리고 JS에서.$.post핸들러 함수:

var obj = $.parseJSON(data);
var v = data.k; 

어디에k연관 배열의 키 값입니다.

json_encodeJQuery에는 JSON 구문 분석을 위한 기본 제공 기능도 있습니다.예를 들어 사용할 수 있습니다.

$.ajax({
    url: "<?php echo site_url('demo/getPhotos/'); ?>",
    type: 'POST',
    data: form_data,
    dataType: 'json', // will automatically convert array to JavaScript
    success: function(array) {
        alert(array[0]); // alerts first string
    }
});

json 자체를 반환한 다음 json 위에 다음과 같이 루프하여 배열을 js 단위로 구성합니다.

var array=[];
for(var key in json)
{    
    if(json.hasOwnProperty(key))
      array.push(json[key]);
}

아니면 단순히 json 자체와 함께 작업할 수 있습니까? 어레이가 필요한 이유가 있습니까?

json[0] 또는 json[1] 등과 같은 것.

이 물건이 필요할 때 json_bullet rulez.

저도 최근에 이 멋진 것을 배웠어요!방법은 다음과 같습니다.

function jsonResponse($array) {
     header('Content-type: application/json; charset=utf-8;');
     die(json_encode($array));
}

이것은 선택사항입니다. 만약 당신이 그것을 하고 싶다면, 당신은 그럴 필요가 없습니다. 하지만 제 MVC 시스템에서, 저는 이렇게 쓰는 경향이 있습니다.그래서 먼저 스크립트에 Ajax 요청(프로토타입)을 하고, 나중에 이 함수를 jsonResponse라고 부릅니다.

    new Ajax.Request('URL',
{
    method:'post',
    onSuccess: function(transport){
        res = transport.responseJSON;
        $('actionInformation').update(res.username);
    },
    onFailure: function(){
        alert('Something went wrong...')
    }
});

이것은 jscript 코드입니다. res.msg에 주목하세요. 여기가 어레이로 작동할 수 있는 곳입니다.그러나 jsonResponse 기능을 사용하여 PHP로 JSON 형식으로 응답을 전송해야 합니다. 예를 들어, php 기능은 다음과 같이 보일 수 있습니다.

function ajax_get_user() {
     $userName = 'Adrian';
     $active = 1;
     jsonResponse(array('username' => $username, 'active' = $active));
}

나중에 쉽게 할 수 있습니다. res.username, res.active.

이거면 될 것 같아요!

언급URL : https://stackoverflow.com/questions/7263052/how-to-pass-an-array-using-php-ajax-to-javascript

반응형