0

我正在制作一个动态 csv 到数组格式化程序,其中一部分显示格式化的数组,另一部分假设显示它的代码。如果没有它再次显示数组,我无法让它显示代码,我该怎么办?

-Javascript

$.post('csv.php', {names : names, fp : fp}, function(data){
         $('#arrayDisp > center > textarea').html(data);
        $.ajax({
              url: "csv.php",
              context: document.body,
              success: function(){
                $('#codeDisp > center > textarea').html(data);
              }
        });
    });

-PHP

$file = file(_FILE_PATH, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$data = array();

$line_number = 0;
foreach($file as $f) {
    $line = explode(',', $f);
    $i = 0;
    foreach($line as $l) {
        $data[$line_number][$names[$i]] = $l;
        $i++;
    }
    $line_number++;
}

json_encode($data);
print_r($data);
?>
4

3 回答 3

0

我会修改脚本以接受 GET 参数。所以它看起来像这样

if($_GET['showSource'])
  highlight_file ($_SERVER['PHP_SELF']);
else
  //do stuff

所以你的 JS 调用实际上是两个调用,首先你调用没有?showSource=1 的脚本,这样你就会得到解析的 csv 东西,然后你?showSource=1 进行调用并显示源。

于 2013-11-10T19:07:56.533 回答
0

你可以试试

foreach($data as $key => $value)
{
  echo $key." has the value". $value;
}

这可能对你有用

于 2013-11-10T18:57:41.460 回答
0

感谢 Emissary 的有用提示,我找到了问题的答案 -

我在我的帖子请求中添加了一个请求变量,并在每个请求结束时重命名它们 -

var request = 'array';
$.post('csv.php', {names : names, fp : fp, request : request}, function(data){
     $('#arrayDisp > center > textarea').html(data);
    request = 'code';
    $.post('csv.php', {names : names, fp : fp, request : request}, function(data){
        $('#codeDisp > center > textarea').html(data);
    });
});

然后在我的php代码中我这样做了 -

if ($_POST['request'] === "array") {
    json_encode($data);
    print_r($data);
}
else if ($_POST['request'] === "code") {
    echo file_get_contents('csv.php');
}
于 2013-11-10T19:11:13.127 回答