2013-04-28 6 views
0

나는이 문제를 해결할 수 없다.배열을 PHP에서 JQUERY로 전달한 다음 PHP에서 JQUERY로 다시 배열을 보냅니다.

하나의 배열을 PHP 스크립트 processData.php에 전달하려고합니다. 그러면 그 데이터를 사용하여 perl 스크립트를 실행합니다.

그런 다음 펄 스크립트의 결과를 다시 표시하기 위해 JQUERY로 반환하고 싶습니다.

데이터를 다시 표시하려고 할 때 데이터가 NULL 값으로 되돌아 오는 것처럼 보입니다. 당신이 볼 수있는

JQUERY PAGE: 
$('#numDevices').click(function(event) { 
     event.preventDefault(); 
     var test = []; 
     var $number = $('#element'); 
     var value = $number.val(); 
     var container = $('#main'); 
     $('.device').remove(); 
     $('#send').remove(); 
     for(var i=0; i<value; i++) { 
      container.append('<div class="device"><fieldset><legend>Device' + i + '</legend><textarea class="input" rows="10">Please enter a hostname, followed by the corresponding links.</textarea></fieldset></div>'); 

     } 
     container.append('<input type="submit" id="send" name="send" value="submit"/>'); 
     $('#send').click(function(event) { 
      event.preventDefault(); 

      var device = new Array(); 
      $('textarea').each(function(index, area) { 
       var $area = $(area).val(); 
       device.push($area); 
      }); 

      $.ajax({ 
       type: "GET", 
       url: "processData.php", 
       data: "input"+device, 
       cache: false, 

       success: function(data) { 
        alert(data); 
       }, 
       error: function() { 
        alert("FAILED"); 
       } 
      }); 
     }); 
    }); 

.....

PHP PAGE: 
<?php 
$data =$_GET['input']; 
echo json_encode($data); 
?> 

그래서, PHP의 배열을 전달하기 위해 노력하고, 테스트하고 표시 JQUERY로 다시 전달합니다. 패스 할 때 NULL 값을 얻고 있으므로 NULL 값을 보내는 것으로 가정 할 수 있습니다.

자세한 정보가 필요하면 기꺼이 추가 할 것입니다.

업데이트

1) 나는 지금 위해서 var_dump 경유 값 ($ 데이터)을 참조 할 수 data: {input: device},

data: "input"+device,를 변경;

지금 문제는 JQUERY로 다시 전송되는 데이터가 NULL이라는 것입니다.

SECOND UPDATE

1) 라이트 : dataType: "json" 2) POST

새로운 오류에 GET 변경된 : 1) Parsererror 2) 입력 (3)의 예기치 않은 단부) 오브젝트 [개체 ]

+0

"가정"하지 마십시오. 밖에있는 많은 유틸리티가 있습니다. 실제로 어떤 일이 벌어지고 있는지 (예 : 피들러 또는 Chrome 개발자 도구) 확인할 수 있습니다. – CodeZombie

답변

0

가 ..... 내가 잘못 무엇인지 파악 좋아

PHP 버전 5.4가 제대로 설치되지 않은

내가 php -v를했을 때 5.4.7, howe 내가 rpm -qa를했을 경우 ver | grep php 5.1.6 버전을 보여줍니다.

5.6.1 용 rpm을 제거하고 5.3 용 rpm을 설치해야했습니다.

이 문제를 해결해 주셔서 감사합니다.

2
var device = $.map($('textarea'), function(el, i) { return el.value; }); 

$.ajax({ 
    type: "GET", 
    url: "processData.php", 
    dataType: 'JSON', 
    data: {input : device.join('$$')}, 
    cache: false 
}).done(function(json) { 
    console.log(json); 
}); 

PHP

<?php 
    $data = $_GET['input']; 
    echo json_encode(explode('$$', $data)); 
?> 
+0

아하하니, 내가 가까이 다가 가고 있을지도 모릅니다. var_dump를 수행 한 후에 값이 더 이상 null이 아니며 array (1) {[0] => string (61) "올바른 값"} – jmg0880

+0

을 볼 수 있습니다. 지금 문제가있는 것 같습니다. 부정확 한가? 'echo json_encode ($ data);' – jmg0880

+0

그래서 경고는 무엇을 말합니까? – adeneo

0

테스트 PHP에서이

$('#numDevices').click(function(event) { 
     event.preventDefault(); 
     var test = []; 
     var $number = $('#element'); 
     var value = $number.val(); 
     var container = $('#main'); 
     $('.device').remove(); 
     $('#send').remove(); 
     for(var i=0; i<value; i++) { 
      container.append('<div class="device"><fieldset><legend>Device' + i + '</legend><textarea class="input" rows="10">Please enter a hostname, followed by the corresponding links.</textarea></fieldset></div>'); 

     } 
     container.append('<input type="submit" id="send" name="send" value="submit"/>'); 
     $('#send').click(function(event) { 
      event.preventDefault(); 

      var device = new Array(); 
      $('textarea').each(function(index, area) { 
       var $area = $(area).val(); 
       device.push($area); 
      }); 

      $.ajax({ 
       type: "POST", 
       url: "processData.php", 
       data: {input : device}, 
       cache: false, 
       dataType: 'json', 
       success: function(data) { 
        alert(data[0]); 
        alert(data[1]); 
       }, 
       error: function() { 
        alert("FAILED"); 
       } 
      }); 
     }); 
    }); 

<?php 
$data =$_POST['input']; 
echo json_encode($data); 
?> 
+0

경고가 개체를 표시 할 수 없으므로 [object, object]가 표시됩니까? – adeneo

+0

내가'var results = JSON.parse (data);를 사용할 때; 경고 (결과)'다시 돌아와서 "예기치 않은 입력 끝"오류가 발생합니다. – jmg0880

+0

경고 대신 작은 귀여운 기능을 시도해보십시오. function dump (obj) { var out = ''; for (var i in obj) { out + = i + ":"+ obj [i] + "\ n"; } 경고 (개); } – themis