2011-08-30 164 views
3

我在通过ajax发布到csv文件时发生错误。注意:Array to string conversion

<?php 
$list = array ($_POST["array"]); 
$fp = fopen('array.csv', 'w'); 
fputcsv($fp, $list); 
fclose($fp); 
?> 

我阵列我试图张贴

["0", "0", "0", "0", "0", "0", "0", "0", 99] 

响应:


注意:数组字符串转换在C:\ XAMPP \ htdocs中\ SNX \资产\ www \ write.php on line

我的Ajax帖子;

/* Array */ 
var defaultArray = new Array(); 
var localArray = new Array(); 
var serverArray = new Array(); 

/* Default Values */ 
defaultArray[0] = "0"; 
defaultArray[1] = "0"; 
defaultArray[2] = "0"; 
defaultArray[3] = "0"; 
defaultArray[4] = "0"; 
defaultArray[5] = "0"; 
defaultArray[6] = "0"; 
defaultArray[7] = "0"; 
defaultArray.push(99); 

/* Write Array [1st Load] */ 
$.post("write.php", { 'array': defaultArray }); 

回答

8
$list = array ($_POST["array"]); 

如果$_POST['array']已经是一个数组,使得Array($_POST['array'])串[酮]数组的数组。

如果你写print_r($list),你会看到这样的事情:

Array(0 => 
Array(
    0 => "0", 
    1 => "0", 
    2 => "0", 
    3 => "0", 
    4 => "0", 
    5 => "0", 
    6 => "0", 
    7 => "0", 
    8 => 99 
) 
) 

要使用字符串的原始数组,你可能只是想:

$list = $_POST["array"]; 

现在,当你写print_r($list),你会看到预期的:

Array(
    0 => "0", 
    1 => "0", 
    2 => "0", 
    3 => "0", 
    4 => "0", 
    5 => "0", 
    6 => "0", 
    7 => "0", 
    8 => 99 
) 

顺便说一句,使用只有.push用于添加项到Javascript数组,你应该实例化像= [],而不是= new Array()

+4

上帝,我喜欢这个网站,赞美主耶稣对Stackoverflow.com – Xavier

+1

@ Xavier:inorite? :) –

+2

哈利路亚!让我们赞美堕落的孩子的女神! – hakre