0

我这辈子都想不通。

我正在尝试将单个数组传递给 php 脚本 processData.php,然后它将使用该数据来执行 perl 脚本。

然后我想将 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)我已更改 data: "input"+device,data: {input: device},

我现在可以通过 var_dump($data); 查看值

我现在遇到的问题是发送回 JQUERY 的数据为 NULL。

第二次更新

1)添加:dataType: "json" 2)更改GETPOST

新错误:1) Parsererror 2) 输入意外结束 3) [Object][Object]

4

3 回答 3

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) );
?>
于 2013-04-28T22:09:53.377 回答
0

好的,我知道出了什么问题......

未正确安装 PHP 5.4 版

当我执行 php -v 时,它会告诉我 5.4.7,但是如果我执行 rpm -qa | grep php 它会显示版本 5.1.6。

我必须删除 5.6.1 的 rpm 并安装 5.3 的 rpm,它工作正常。

谢谢大家帮我解决这个问题!!!

于 2013-05-15T17:47:57.363 回答
0

测试这个

$('#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中

<?php
$data =$_POST['input'];
echo json_encode($data);
?>
于 2013-04-28T22:21:49.967 回答