使用ajax从php获取数据

时间:2014-07-17 07:46:44

标签: javascript php ajax

我有以下ajax功能:

var data=event.target.result;
var fileName=encodeURIComponent('audio_recording_' + new Date().getMinutes() + '.wav');
$.ajax({
    type: 'POST',
    url: 'readFile.php',
    data: {"fileName":fileName,"data":data},
    success: function(data){
        console.log(data);
    }
});

服务器端代码

<?php
$fileName=$_POST["fileName"];
$data=$_POST["data"];
$dh = opendir('upload/');
$contents = file_get_contents('C:/wamp/www/JSSoundRecorder/upload/'.$fileName);
// echo $contents;
echo $fileName;
echo $data;

在console.log(数据)中我获得正确的结果(文件名和数据)我想要的是让每个信息单独使用以后再使用。这是变量中的fileName和成功函数中另一个变量中的数据,这样我以后就可以在程序中使用它们。我想我应该使用localstorage和json.stringify这是正确的。或者是另一种方式。如果这是真的,你可以帮我在这里使用localstorage吗?提前谢谢你

4 个答案:

答案 0 :(得分:1)

试试这个

var data=event.target.result;
var fileName=encodeURIComponent('audio_recording_' + new Date().getMinutes() + '.wav');
$.ajax({
   type: 'POST',
   url: 'readFile.php',
   data: {"fileName":fileName,"data":data},
   dataType: 'json', //<==== Add this
   success: function(data){
     console.log(data.filename);
     console.log(data.data);
   }

});

你的php应该是:

<?php
   $fileName=$_POST["fileName"];
   $data=$_POST["data"];
   $dh = opendir('upload/');
   $contents = file_get_contents('C:/wamp/www/JSSoundRecorder/upload/'.$fileName);
   $data = array('filename'=>$filename, 'data'=>$data); 
   echo json_encode($data);
?>

答案 1 :(得分:0)

您可以将信息放在对象或关联数组中,然后使用json_encode转换序列化字符串中的对象。然后你可以在Javascript中解析JSON字符串:

在php中,如果你有一个对象或关联数组,你会写:

echo json_encode($yourObjectOrArray);

数据是您在成功函数中收到的数据:

var data = '{"fileName":"yourFileName","data": "yourData", "moreData" : "moreData"}';
var obj = JSON.parse(json);

答案 2 :(得分:0)

尝试

PHP

$result = array("filename" => $fileName, "data" => $data);
echo json_encode($result);

jquery

success: function(response){
    console.log(response);
    // var myObject = $.parseJSON(response)
    // here you have an object with all values now
} 

需要myObject,具体取决于您是否在ajax中使用dataType: "JSON"

答案 3 :(得分:0)

你应该在javascript部分使用JSON将它作为一个对象。

您可以使用var jsonData = JSON.parse(data.data)

在服务器上,您应该使用相应的PHP函数在json中对其进行编码:json_encode(YOUR_ARRAY)

此处提供更多信息:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON/parse

这里有一个很好的例子:http://www.caveofprogramming.com/frontpage/articles/php/php-json-an-example-javascript-json-client-with-php-server/