首先,我已经阅读并尝试了这篇文章的内容: Laravel change input value
我的目标是改变一些输入'页面加载值,但我在某处做错了。
即我最近有一些用户填写的输入,现在我希望他们编辑这些字段。所以我需要从数据库中提取一些数据并将这些数据插入到我的输入中。
navTabs.js
$(document).ready(function(){
$('#myTab a').on(function (e) {
e.preventDefault();
$(this).tab('show');
},myOnLoadFunction());
}
function myOnLoadFunction(){
$.post('myRoute');
}
Routes.php:
Route::post('myRoute', array(
'uses' => 'MyController@myMethod',
'as' => 'myRoute'
));
MyController.php
public function myMethod(){
Input::merge(array('myInputName' => 'theValueFromDatabase'));
}
所以,我在某个地方犯了一个错误,但我无法找到它
在测试之前一切正常,直到 myMethod 我才能得到答复
我使用合并方法错了吗?
提前致谢。
更新
的 MyController.php
public function myMethod(){
Input::merge(array('myInputName' => 'theValueFromDatabase'));
//i have nearly 15 inputs here, assigning each of them one by one.
$allVariablesWithNewInput = \Input::all();
return Response::json($allVariablesWithNewInput);
}
现在此值将返回 navTabs.js
function myOnLoadFunction(){
$.post('myRoute', function(data){
document.getElementById('myFieldID').value = data['myInputName'];
//and assign 15 more inputs here to see values on html elements.
});
}
首先,谢谢你的耐心等待。 我们想通过这种方式找到问题的解决方案。但我对这个解决方案并不满意。我将不得不在这里写很多代码。有没有办法减少重复?你提供算法还是别的什么?
谢谢。
答案 0 :(得分:2)
在致电\Input::merge()
之后,您是否尝试过调用\Input::get()
它是否会为您提供合并数组?
因为\Input::merge()
只会添加您传递的新输入参数集,而不会返回任何内容。
让我知道这是否有效:
public function myMethod(){
Input::merge(array('myInputName' => 'theValueFromDatabase'));
$newInputVariables = \Input::get('myInputName');
$allVariablesWithNewInput = \Input::all();
}
答案 1 :(得分:1)
我看到一些你应该修复的错误,也许会有所帮助。
$(document).ready(function(){
$('#myTab a').on('this needs an event', function (e) { // 'click' maybe?
e.preventDefault();
$(this).tab('show');
},myOnLoadFunction); // Shouldn't put paranethesis
}
function myOnLoadFunction(){
$.post('myRoute');
}
然而,您可能无法获得回复,因为您实际上并未从您的方法返回任何内容。如果您想获得json,请尝试return Response::json(Input::all());