Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t使用Ajax、PHP、Json和Laravel(PHP框架)解决代码_Javascript_Php_Ajax_Json_Laravel - Fatal编程技术网

Javascript Can';t使用Ajax、PHP、Json和Laravel(PHP框架)解决代码

Javascript Can';t使用Ajax、PHP、Json和Laravel(PHP框架)解决代码,javascript,php,ajax,json,laravel,Javascript,Php,Ajax,Json,Laravel,无法访问从php函数(使用laravel框架)发送到ajax调用的json编码数据。 我正在对数据库结果进行编码 这是我正在使用的php函数 公共函数newLearner(){ 在javascript方面,我使用了: function newLearner() { var firstname = $('input[name=new_first_name]').val(); var lastname = $('input[name=new_last_name]').val(); va

无法访问从php函数(使用laravel框架)发送到ajax调用的json编码数据。 我正在对数据库结果进行编码 这是我正在使用的php函数 公共函数newLearner(){

在javascript方面,我使用了:

function newLearner() {

  var firstname = $('input[name=new_first_name]').val();
  var lastname = $('input[name=new_last_name]').val();
  var student_id = $('input[name=new_id]').val();
  //alert(firstname);
   var URL = "/teghlearner/public/admin/newLearner";
   var info ={
    "firstname":firstname,
    "lastname" : lastname,
    "student_id" : student_id
    };


$.ajax({
      type: "post",
      url: URL,
      data : info,

      success: function(result) {


        //alert(result['first_name']);
        for(var i=0;i<result.length;i++){
   var item=result[i];
   alert(item['first_name']);
   alert(item['last_name']);
}




      },

       error: function(jqXHR, textStatus, errorThrown) {

        $('#data').html(result);

    }

    });


}


And this is the JSON Returned from the php function

[
    {
        "id": 24,
        "title": "Mr",
        "first_name": "Patrick",
        "last_name": "Vinc",
        "gender": "male",
        "email": "nupur@gmail.com",
        "password": "$2y$10$yCyGBOtX6kF3ghy/k8YuXe4wR9W5hYtTGDkl5trTEd7.s5LntOQ.u",
        "phone_type": null,
        "phone_number": "0000000000",
        "pager_number": "00000000000000",
        "address_line_1": "",
        "address_line_2": "",
        "city": "",
        "postal_code": "",
        "province": "BC",
        "country": null,
        "emc_contact": "",
        "emc_phone": "000000000000000000",
        "emc_relation": "",
        "passcode": "",
        "locker": "999999",
        "combination": "abc567",
        "its_username": null,
        "its_password": null,
        "dictation_number": null,
        "emailed": 1,
        "signed": 0,
        "student_num": "12345634",
        "level": "Default",
        "persist_code": "",
        "activated_at": "2014-08-23 16:04:18",
        "program": null,
        "school": "",
        "service": "",
        "undergrad_year": null,
        "undergrad_level": null,
        "activated": 1,
        "activation_code": "",
        "undergrad_text": null,
        "cpso_num": 0,
        "start_date": "2014-08-01",
        "end_date": "2014-08-31",
        "learner_start_date": "0000-00-00",
        "learner_end_date": "0000-00-00",
        "vacation_start_date": "0000-00-00",
        "vacation_end_date": "0000-00-00",
        "physician": "1",
        "affiliates": null,
        "mask": "",
        "mask_fit_month_year": "",
        "learner_type": null,
        "status": 1,
        "last_login": "0000-00-00 00:00:00",
        "reset_password_code": "",
        "permissions": "",
        "created_at": "-0001-11-30 00:00:00",
        "updated_at": "2014-08-22 21:27:17"
    }
]
函数newLearner(){ var firstname=$('input[name=new_first_name]')。val(); var lastname=$('input[name=new_last_name]')。val(); var student_id=$('input[name=new_id]')。val(); //警报(名字); var URL=“/teghlearner/public/admin/newLearner”; 风险值信息={ “名字”:名字, “lastname”:lastname, “学生id”:学生id }; $.ajax({ 类型:“post”, url:url, 数据:信息, 成功:功能(结果){ //警报(结果['first_name']);
对于(var i=0;i而言,问题在于响应上的内容类型是text/html。这使jquery认为响应是html。在这种情况下,jquery不会解析json。要解决此问题,只需删除json_编码。您的laravel控制器应如下所示:

$first_name = Input::get('firstname');
$last_name = Input::get('lastname');
$student_id = Input::get('student_id');

if(!empty($first_name) && empty($last_name) && empty($student_id)) {
    return Learners::where('first_name','=',$first_name)->get();
}
这是因为当您返回集合时,Laravel将自动将其转换为json,并将内容类型设置为application/json


还要注意的是,您应该使用输入facade来获取post变量,而不是使用_postsuperglobal。

您甚至从php脚本中返回了一些东西吗?请使用浏览器开发工具。@CharlotteDunois是的,我从php中获取json数据。我已经提到了我作为json获取的结果。如果您不确定您的实际的数据结构如下所示,然后将您收到的响应AJAX调用的对象记录到浏览器控制台,以便您可以对其进行检查。@CBroe这是我作为结果得到的JSON格式[{“id”:24,“title”:“Mr”,“first_name”:“Patrick”,“last_name”:“Vinc”,“gender”:“男性”,“开始日期”:“2014-08-01”,“结束日期”:“2014-08-31”,“学习者开始日期”:“0000-00-00”,“学习者结束日期”:“0000-00-00”,“假期开始日期”:“0000-00-00”,“假期结束日期”:“0000-00-00”您的JSON无效。假期结束日期后的最后一个逗号正在创建无效的JSON字符串。您是否尝试过Response::JSON而不是JSON编码?
$first_name = Input::get('firstname');
$last_name = Input::get('lastname');
$student_id = Input::get('student_id');

if(!empty($first_name) && empty($last_name) && empty($student_id)) {
    return Learners::where('first_name','=',$first_name)->get();
}