【问题标题】:jquery $.get() returns [object,object]jquery $.get() 返回 [object,object]
【发布时间】:2014-06-07 06:26:33
【问题描述】:

我试图从控制器返回一些值并在 jquery 中使用这些值。但是 jquery 函数返回 [object, object]。

控制器功能:

public function skillsReturnJson() {
    $skilljson = Skill::find()->skill_name;
    return $skilljson;
}

jquery函数:

function addNew() {
     $.get('skills_json', function(data){
           alert(data);
    },'json');

路由到控制器:

 Route::POST( 'skills_json', array( 'uses' => 'MyProfile@skillsReturnJson' ));

【问题讨论】:

  • 您需要将技能 ID 传递给 find 方法。例如,查找 ID = 1 的技能: Skill::find(1)->skill_name;
  • console.log 而不是alert,请:))
  • 警报函数不会返回任何对复杂对象有用的东西。尝试使用 console.log(data) 而不是 alert(data) 并查看诸如 chrome dev tools 之类的东西
  • data 引用了一个对象,因此您可能想要访问数组键值而不是 alert(data)。使用console.log(data) 找出键名。
  • console.dir(data) 是最适合可视化 Javascript 对象的调试转储器

标签: php jquery json laravel


【解决方案1】:

尝试使用 Response 对象作为开始并返回一个数据数组。

public function skillsReturnJson() {
    $skilljson = Skill::find()->skill_name;
    return Response::json(['data', $skilljson->toArray()]);
}

【讨论】:

    【解决方案2】:

    尝试使用console.log(data) 代替alert(data) 来查看对象包含的内容。基本上,数据变量是一个对象数组。当您检查控制台时,您将能够看到这些对象包含哪些属性。例如:假设每个对象都包含一个“skill_name”属性,您可以使用data[0].skill_namedata[1].skill_name 访问每个对象“skill_name”(因为从您的帖子中它返回了两个结果,第一个对象为 0,第二个对象为 1) .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2014-08-09
      相关资源
      最近更新 更多