我試圖用jQuery讀取並顯示一個PHP
數組,顯式地是一個解析的SRT字幕文件。我可以在ajax
成功響應後看到所有數據在一起做console.log(data)
,但我想操縱數據。 我jQuery
代碼:無法在JavaScript中讀取PHP結構數組jQuery
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
代碼是這一個:
<?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
結構陣列中的數據,我不明白?
謝謝
在你的ajax調用中設置'dataType:'JSON','cache:false'。並且不需要執行'JSON.parse(data)' – VIDesignz
當您收到有效載荷時,您能向我們展示您的數據結果是什麼樣子嗎? – VIDesignz
是的,這是數據: [{「number」:「\ ufeff1」,「stopTime」:「00:00:15,555」,「startTime」:「00:00:14,060」,「text」:「So \ n「},{」number「:」2「,」stopTime「:」00:00:19,636「,」startTime「:」00:00:15,580「,」text「:」 \ n「},{」number「:」3「,」stopTime「:」00:00:22,020「,」startTime「:」00:00:19,660「,」text「:Elle,\ nclose to Lista。 \ n「},{」number「:」4「,」stopTime「:」00:00:25,556「,」startTime「:」00:00:23,140「,」 \ n「}, – Sergi