目前我正在使用jQuery Ajax异步函数多次请求PHP页面,直到处理了大量电子表格行。现在我使用以下代码来设置要传递给请求页面的变量,我不确定这是否是正确的方法。 PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$new_spreadsheet = nl2br($_POST['spreadsheet']);
$new_spreadsheet = explode('<br />', $new_spreadsheet);
array_shift($new_spreadsheet);
$new_spreadsheet = array_values($new_spreadsheet);
$new_spreadsheet = json_encode($new_spreadsheet);
echo var_dump($new_spreadsheet);
}
的JavaScript / PHP:
var done = false,
offset = 0,
limit = 20,
rankings_abv_twenty = 0,
sum = 0,
num_count = 0,
websites = 1
<?php if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo ', spreadsheet = '.$new_spreadsheet;
}?>;
在请求的PHP页面(恰好是面向对象的PHP)上,我有以下代码来截断20行以处理给定的请求。请不要PHP是一个完整的工作类,我只是为了帖子长度没有包括所有的PHP。还要注意,我有另一个调用类的页面,它通过引用将电子表格变量传递给PHP的构造函数$ _POST ['spreadsheet'],所以我知道我有正确的值作为电子表格。 PHP:
$this->offset = $offset;
$this->limit = $limit;
$this->spreadsheet = json_decode($spreadsheet);
这是切掉行的PHP行:
$this->rows = array_slice($this->spreadsheet, $this->offset, $this->limit);
由于某些原因,我的代码无法正常工作,并且给出了与上述代码相关的以下错误:
PHP Warning: json_decode() expects parameter 1 to be string, array given
PHP Warning: array_slice() expects parameter 1 to be array, null given
我认为这可能与我的字符串如何传递所请求的PHP有关。另外,还有一点需要注意的是,当我在我的电子表格变量中使用var_dump()之后将其传递给请求的PHP,我将其输出为字符串,如下所示:
string(7560) "String content goes here"
答案 0 :(得分:0)
第一眼看,你没有回应json_encode,而是使用了var_dump。
当手动修改json编码的字符串时,请务必使用&#34;在vars周围。
而且:
websites = 1
<?php if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo ', spreadsheet = '.$new_spreadsheet;
}?>;
将导致:
websites = 1, spreadsheet = "{"1":"foo","2":"bar","3":"baz","4":"blong"}";
将线路包裹在&#39;如果那是你所期待的......
像这样: echo ", spreadsheet = '".$new_spreadsheet."'";