jjzjj

php - 在 Laravel 5.1 中通过 AJAX 将用户输入数据从 View 传递到 Controller

coder 2024-04-21 原文

我想使用 post 方法通过 AJAX 将下拉列表数据作为表单变量从 View 发送到 Controller 。

我可以使用 get 方法和路由参数将下拉列表数据从 View 发送到 Controller 。

这是我的 View 代码片段:

function drawChart(frmyear, toyear) 
{

    console.log(frmyear);
    console.log(toyear);


        var jsonData = $.ajax({
        url: "get_salesthree/"+ frmyear + "/"+ toyear +"/",
        dataType: 'json',
        async: false
                    }).responseText;

        console.log(jsonData);

路由代码片段:

    Route::get('get_salesthree/{frmyear}/{toyear}', array('uses'=>'Analytics\DashboardController@get_salesthree'));

出于安全原因,我不想使用路由参数传递用户输入数据。此外,我有多个用户输入参数需要发送到 Controller ,因此上述方法也不可行。因此,在这种情况下还有其他可用的替代解决方案吗?

Controller 代码片段:

public function get_salesthree($frmyear, $toyear)
{   

     return \Response::json(Salethree::get_formatted_salesthree($frmyear, $toyear ));

}

下拉列表代码片段:

<label>From Date</label>
                    <select id="ddlfrmyear" name="frmyear" onchange="check(this);">
                    <option value="-1">Select Date </option>
                        @foreach ($date_lists as $date_list)
                    <option value="{{ $date_list}}">{{ $date_list}}</option>
                        @endforeach
                    </select>

JavaScript 检查函数:

function check(sel) 
{
   document.getElementById('ddltoyear').disabled = !sel.selectedIndex;
   var frmyear =  document.getElementById('ddlfrmyear').value;

   var toyear =  document.getElementById('ddltoyear').value;

   console.log(frmyear);    
   console.log(toyear);
    if (toyear != '-1')
    {
        drawChart(frmyear, toyear);
        //drawChart();      
   }
}

现在我得到的是在按照建议更改 ajax 调用后未定义检查函数。我想知道下拉列表的 on-select 事件和 AJAX 路由之间的关系是什么?

最佳答案

这只是您理解的一个例子,我希望这能指导您获得您的功能。

如果你不想在 URL 中显示你的数据/参数,那么你也可以使用 Ajax Post,

$.ajax({
        type: 'POST' 
        url: "get_salesthree/",
        data: yourForm.serialize()
        dataType: 'json'

并在您的路由中,删除查询字符串的变量,并使其像这样。

Route::post('get_salesthree/', array('uses'=>'Analytics\DashboardController@get_salesthree'));

在你的 Controller 中

public function get_salesthree(Request $request){   
     $frmyear = $request->input('frmyear');
     $toyear  = $request->input('toyear');

     //do your functionality as per your need


     return \Response::json(Salethree::get_formatted_salesthree($frmyear, $toyear ));

}

关于php - 在 Laravel 5.1 中通过 AJAX 将用户输入数据从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35147674/

有关php - 在 Laravel 5.1 中通过 AJAX 将用户输入数据从 View 传递到 Controller的更多相关文章

  1. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  2. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  3. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  4. ruby-on-rails - rails : How to make a form post to another controller action - 2

    我知道您通常应该在Rails中使用新建/创建和编辑/更新之间的链接,但我有一个情况需要其他东西。无论如何我可以实现同样的连接吗?我有一个模型表单,我希望它发布数据(类似于新View如何发布到创建操作)。这是我的表格prohibitedthisjobfrombeingsaved: 最佳答案 使用:url选项。=form_for@job,:url=>company_path,:html=>{:method=>:post/:put} 关于ruby-on-rails-rails:Howtomak

  5. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  6. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  7. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

  8. ruby-on-rails - 如何在 Rails Controller Action 上触发 Facebook 像素 - 2

    我有一个ruby​​onrails应用程序。我按照facebook的说明添加了一个像素。但是,要跟踪转化,Facebook要求您将页面置于达到预期结果时出现的转化中。即,如果我想显示客户已注册,我会将您注册后转到的页面作为成功对象进行跟踪。我的问题是,当客户注册时,在我的应用程序中没有登陆页面。该应用程序将用户带回主页。它在主页上显示了一条消息,所以我想看看是否有一种方法可以跟踪来自Controller操作而不是实际页面的转化。我需要计数的Action没有页面,它们是ControllerAction。是否有任何人都知道的关于如何执行此操作的gem、文档或最佳实践?这是进入布局文件的像素

  9. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  10. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

随机推荐