2015-04-18 4 views
1

Я, должно быть, здесь делаю что-то глупое. У меня есть этот PHP файл:PHP массив для json

$arr = array("result" => "dasdasds;bks fjsdgjdklsds j&*", "text" =>"23 + 2 =   ?"); 

echo json_encode($arr); 

И я называю это в моем JS файл:

/* 
    * PHP array to json 
    */ 

    $("#jsonform").submit(function(e){ 

     $.ajax({ 
      url:"/phparraytojson/Helper.php", 
      success: function(data){ 
      console.log(data.result) //undefined 
      console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?"} 
      } 

     }) 
     e.preventDefault(); 
    }) 
+0

Что именно ваша ошибка? Не возражаете ли вы добавить дополнительную информацию на свой вопрос? –

+1

use dataType: "json", – Saty

+0

Я получаю undefined при вызове data.result –

ответ

1

Добавление DATATYPE: "JSON" это исправить:

$.ajax({ 
     url:"/phparraytojson/Helper.php", 
     dataType: "json", 
     success: function(data){ 
     console.log(data.result) //undefined 
     console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?"} 
     } 

    }) 
+1

стрела, это работает –

1

В Ajax вызова вам нужно добавить формат вывода, который вы получаете от php. то есть: dataType:"json"

$("#jsonform").submit(function(e){ 

    $.ajax({ 
     url:"/phparraytojson/Helper.php", 
     dataType:"json",    //Dont miss to add 
     success: function(data){ 
     console.log(data.result) //undefined 
     console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?"} 
     } 

    }) 
    e.preventDefault(); }); 
+1

Эта версия, похоже, не работает, добавляет кавычки, хотя –

1
you should be use datatype:'json' in ajax call 
$.ajax({ 
    url:"/phparraytojson/Helper.php", 
    async: false, 
    dataType: 'json', 
    success: function(data){ 
     console.log(data.result) //undefined 
     console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?" 
        } 
    } 

}); 
Смежные вопросы