首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取javascript jQuery中的PHP结构数组

无法读取javascript jQuery中的PHP结构数组
EN

Stack Overflow用户
提问于 2015-11-30 14:26:35
回答 2查看 76关注 0票数 0

我试图用jQuery读取和显示一个PHP数组,显式地显示一个解析的SRT字幕文件。在console.log(data)成功响应之后,我可以看到所有数据一起执行ajax,但我想操作这些数据。我的jQuery代码:

代码语言:javascript
复制
var jsonURL = JSON.stringify(data);
        $.ajax({
            type: "POST",
            url: "parser_srt.php",
            data: {url: jsonURL}, 
            cache: false,

            success: function(data){
                console.log(data);
                var cont = 0;
                var data = JSON.parse(data)
                for(var i = 0; i < data.length; i++) {
                    n_ = data[i].number;
                    i_ = data[i].startTime;
                    o_ = data[i].stopTime;
                    t_ = data[i].text;

                    //is = srtToSeconds(i_);
                    //os = srtToSeconds(o_);

                    var startUp = [{ "start": i_, "end": o_, "text": t_}]; 
                    subtitles_1.push(new paragraph(i + 1, startUp[0].start, startUp[0].end, startUp[0].text));

                    if(flag == 1){
                        var startUp_trans = [{ "start": i_, "end": o_, "text": ' ' }];
                        subtitles_2.push(new paragraph(i + 1, startUp_trans[0].start, startUp_trans[0].end, startUp_trans[0].text));
                    }
                    //cont++;
                }
            }
        });

PHP代码是这样的:

代码语言:javascript
复制
<?php 

define('SRT_STATE_SUBNUMBER', 0);
define('SRT_STATE_TIME',      1);
define('SRT_STATE_TEXT',      2);
define('SRT_STATE_BLANK',     3);

$url = json_decode($_POST['url']);

$lines   = file($url);

$subs    = array();
$state   = SRT_STATE_SUBNUMBER;
$subNum  = 0;
$subText = '';
$subTime = '';

foreach($lines as $line) {
    switch($state) {
        case SRT_STATE_SUBNUMBER:
            $subNum = trim($line);
            $state  = SRT_STATE_TIME;
            break;

        case SRT_STATE_TIME:
            $subTime = trim($line);
            $state   = SRT_STATE_TEXT;
            break;

        case SRT_STATE_TEXT:
            if (trim($line) == '') {
                $sub = new stdClass;
                $sub->number = $subNum;
                list($sub->startTime, $sub->stopTime) = explode(' --> ', $subTime);
                $sub->text   = $subText;
                $subText     = '';
                $state       = SRT_STATE_SUBNUMBER;

                $subs[]      = $sub;
            } else {
                $subText .= $line;
            }
            break;
    }
}
echo json_encode($subs);
?>

为什么我不能在jQuery中获取结构数组中的数据,我不明白?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-30 15:13:05

我想我会把我的评论作为回应..。

首先..。

在ajax调用中将dataType: 'JSON',设置在cache: false,下。

没有必要做JSON.parse(data)

最后,将success: function(data_)更改为success: function(data),并在循环中遍历data

在这一点上,一切都应该正常运作。

票数 2
EN

Stack Overflow用户

发布于 2015-11-30 14:39:02

成功函数定义了data_ &您是console.logging data_,但是您正在循环数据

代码语言:javascript
复制
success: function(data_){
console.log(data_);

..。

代码语言:javascript
复制
for(var i = 0; i < data.length; i++) {
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34000889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档