gpt4 book ai didi

javascript - Laravel 4 在验证失败后将输入重定向回页面

转载 作者:行者123 更新时间:2023-11-30 12:48:44 26 4
gpt4 key购买 nike

我有 4 个将由用户动态创建的字段。

<div class="controls" id="exchange-fields">
<p>
<div id='exchange_div'>
<div class="input-append" id='currency_div1'>
{{ Form::select('currency_id[]', $currencies, null, array('name'=>'currency_id', 'id'=>'currency_id', 'value'=>'Input::old("currency_id")[0]' )) }}
</div>

&nbsp;&nbsp;&nbsp;&nbsp;
<div class="input-prepend" id='actual_div1'>
<span class="add-on">Actual</span>
{{ Form::text('exchange_rate[]', null, array('class'=>'input-medium rate', 'maxlength'=>10, 'id'=>'exchange_rate', 'value'=>'Input::old("exchange_rate")[0]' )) }}
</div>

&nbsp;&nbsp;&nbsp;&nbsp;
<div class="input-append" id='markup_div1'>
{{ Form::text('exchange_rate_markup[]', null, array('class'=>'input-mini yellow rate', 'maxlength'=>4, 'id'=>'exchange_rate_markup', 'value'=>'Input::old("exchange_rate_markup")[0]' )) }}<span class="add-on">%</span>
</div>

&nbsp;&nbsp;&nbsp;&nbsp;
<div class="input-prepend" id='rate_div1'>
<span class="add-on">Marked-up</span>
{{ Form::text('after_markup_rate[]', null, array('class'=>'input-medium yellow', 'maxlength'=>10, 'id'=>'after_markup_rate', 'value'=>'Input::old("after_markup_rate")[0]' )) }}
</div>


</div>
</div>
&nbsp;&nbsp;&nbsp;&nbsp;
<div class="controls">
<input class="btn btn-primary" type="button" id="addScnt" value="Add">

</div>

我使用 javascript 动态填充这些字段。

var scntDiv = $('#exchange-fields');
var i = $('#exchange-fields p').size() + 1;


$('#addScnt').click(function() {

$(scntDiv).append('<p>');
$("#exchange_div").clone().attr("id",'exchange_div_'+ i).appendTo(scntDiv);

//Append the remove button
$($('#exchange_div_'+ i)).append('<input class="btn btn-primary" name="remove" type="button" id="remScnt" value="Remove">');
i++;

});

在我将这些值发布到我的 Controller 并且验证失败之前,这一切正常。如何使用在我的 View 文件中动态填充的旧输入重新填充这些字段?

我使用 return Redirect::back()->withInput()->withErrors($e->getErrors());在验证失败后重定向以重新填充这些字段。但是因为这 4 个字段只接受字符串值并且返回的输入是数组,所以我无法在验证失败后重新填充这 4 个字段。

有什么好的方法可以解决这个问题吗?

提前致谢。

最佳答案

@a7omiton 而不是返回所有输入。我使用 Input::except(array) 返回其余不是数组的字段。

在重定向回来时,我使用了一个额外的 with() 来返回字段数组,就像您最初加载页面时呈现 View 的方式一样。

// If validation fails, ignore those exchange rate fields 
//because they are in array not string
$input = Input::except([
'currency_id',
'exchange_rate',
'exchange_rate_markup',
'after_markup_rate'
]);
// return normally as separate array and it will store in session
return Redirect::back()
->withInput($input)
->withErrors($e->getErrors())
->with('exchange_rate', Input::get('exchange_rate'))
->with('currency_id', Input::get('currency_id'))
->with('exchange_rate_markup', Input::get('exchange_rate_markup'))
->with('after_markup_rate', Input::get('after_markup_rate'));

关于javascript - Laravel 4 在验证失败后将输入重定向回页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com