Php Laravel:如何通过Ajax将选定的索引发送到控制器

Php Laravel:如何通过Ajax将选定的索引发送到控制器,php,ajax,laravel,laravel-3,Php,Ajax,Laravel,Laravel 3,我们想要实现什么 在更改选择列表时,控制器将拾取此selectedIndex,并将其发送到模型。SQL查询和结果将通过选择列表下方的ajax返回。在普通的php环境中很容易做到这一点,但在Laravel环境中我感到困惑 如果不清楚:我想要的是:在Laravel环境中完成 更新:我使用Itachi的指示改进了代码: 如果我可以使用简单的Ajax,但有人建议改为使用JQUERY/JSON,我不知道这为什么不起作用 <script> function showHin

我们想要实现什么

在更改选择列表时,控制器将拾取此selectedIndex,并将其发送到模型。SQL查询和结果将通过选择列表下方的ajax返回。在普通的php环境中很容易做到这一点,但在Laravel环境中我感到困惑

如果不清楚:我想要的是:在Laravel环境中完成

更新:我使用Itachi的指示改进了代码:

如果我可以使用简单的Ajax,但有人建议改为使用JQUERY/JSON,我不知道这为什么不起作用

<script>        
    function showHint(str)
        {
        if (str.length==0)
          {
          document.getElementById("txtHint").innerHTML="";
          return;
          }
        var xmlhttp=new XMLHttpRequest();
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open("GET","gethint.php?q="+str,true);
        xmlhttp.send();
        }   

    </script>
路由文件是这样的:(由Itachi提供)


其实很简单

Routes.php

Route::post('hint', array(
    'as'    =>    'hint',
    'uses'  =>    'HintController@getHint'
));
class HintController extends BaseController {

    public function getHint()
    {
          return Response::json(//whatever you want);
    }
}
HintController.php

Route::post('hint', array(
    'as'    =>    'hint',
    'uses'  =>    'HintController@getHint'
));
class HintController extends BaseController {

    public function getHint()
    {
          return Response::json(//whatever you want);
    }
}
查看

$.ajax({
    url: '<?php echo route("hint");?>', //<-------- see this
    type: 'POST',
    data: { especialidades: $('especialidades').val() },
    dataType: 'json',
    success: SEND IT TO THE CONTROLER HOWEVER YOU CAN...
     }
});
$.ajax({

url:“”,//根据控制器中的方法名称,路由应为()

你的控制器

class Hint extends BaseController{

    public $restful = true;

    public function post_appajax()
    {
        // ...
    }
}

你能重新表述你的问题吗?我不明白问题是什么。我得到了你想要的。我在问你有什么问题?你不能做的部分到底是什么?1)使用Jquery。2)有很多不同的方法。这取决于你是如何映射路由的。(简单地说,显示路由文件)你希望这个控制器是restful还是非restful?你在这里混合了很多代码。我真的不在乎restful与否,我想这意味着你可以看到你的方法使用什么http动词,但不管怎样。是的,它有点混乱,我正在学习如何在控制器中用laravel编写URL,但是…我非常感谢你的帮助在控制器上,返回响应::json,我想要的是,它将selectedIndex发送到模型。我不明白如果我没有看到实际接收到它的代码,它怎么会返回一些东西。在视图上,当你标记“看到这个”时,这是到控制器的正确路由吗,就像那样?回送路由?和“成功"在Jquery,我不知道如何从那里开始:/1.如果我需要编写所有步骤,这将是一个很大的教程。更好的是,试着理解laravel是如何工作的,然后深入到上面的程序中。2.是的,为命名路由编写URL非常容易。3)需要解析JSON输出,然后输出。不可能一次编写所有内容回答。这就是为什么我建议,首先学习基本的东西。然后尝试复杂的问题。我想说这很有帮助,但我的声誉不允许我去标记它。正如你所说,我可能需要6个月的时间来学习JSON,然后学习Laravel,但我只是想解决这些问题。我以前不能学习那么多语言e我解决了我的问题,我在实践中学习,没有时间去做,但是,非常感谢我。好了。只有4页。最多1小时。我很久以前就看过所有这些页了,否则我就不能在这篇文章中写一行了。你认为如果我我以前读过的文章没有那么多,但是我的问题比那些基本的东西复杂得多。我已经知道了基本的东西,我已经从数据库中填充了选择列表等等,但是这些东西不同了,我仍然不知道为什么Ajax片段不适用等等。再次,我继续感谢你,因为你是唯一一个访问answe的人r、 似乎没有人知道怎么做。
$.ajax({
    url: '<?php echo route("hint");?>', //<-------- see this
    type: 'POST',
    data: { especialidades: $('especialidades').val() },
    dataType: 'json',
    success: SEND IT TO THE CONTROLER HOWEVER YOU CAN...
     }
});
Route::post('hint', array( 'as' => 'hint', 'uses' => 'Hint@appajax'));
class Hint extends BaseController{

    public $restful = true;

    public function post_appajax()
    {
        // ...
    }
}