PHP显示错误的名称值
我正在使用x-editable作为我的编辑到位库。PHP显示错误的名称值
我的问题是,当我去插入我的数据并通过我的控制器运行它时,显示错误的值,当我var_dump
的PHP。
我插入的行
<input class="form-control updateField" data-url="{{ route('socialDataSubmit', 1)}}" data-title="Facebook" name="facebook" placeholder="Facebook" type="input" value="{{ old('facebook', @$siteSocialSettingsData->facebook)}}"> <span class="input-group-btn"><button class="btn btn-default edit" type="button"><span class="glyphicon glyphicon glyphicon-pencil"></span></button></span>
正如你在我的jQuery看到我有console.log
这显示出应插入到数据库中正确的值。但是,当我到达PHP时,我从另一个选项卡(使用引导选项卡)输入字段获得"name"
为什么?
输入名称,多数民众赞成在插入:
<input class="form-control updateField" data-url="{{ route('generalDataSubmit', 1)}}" data-title="Website Name" name="siteName" placeholder="Email" type="input" value="{{ old('siteName', $siteSettingsData->siteName)}}"> <span class="input-group-btn"><button class="btn btn-default edit" type="button"><span class="glyphicon glyphicon glyphicon-pencil"></span></button></span>
控制器:
public function generalSettingsGeneralSubmit(Request $request, $id)
{
$dbUpdate = generalSettings::find($id);
$dbColumnName = Request::input('name');
$dbColumnValue = Request::input('value');
$dbUpdate->$dbColumnName = $dbColumnValue;
$dbUpdate->save();
}
public function generalSettingsSocialSubmit(Request $request, $id)
{
$social = socialSettings::where('id','=',$id)->first();
if(is_null($social))
{
$socialInsert = new socialSettings;
$socialInsert->socialName = Request::input('name');
$socialInsert->socialLink = Request::input('value');
$socialInsert->save();
}else{
var_dump(Request::input('name'));
var_dump(Request::input('value'));
die();
}
}
的jQuery:
$(function(){
$.fn.editable.defaults.mode = 'inline';
$.fn.editable.defaults.params = function (params) {
params._token = $("#_token").data("token");
return params;
};
var dataURL = $('.updateField').data('url');
var inputName = $('.updateField').attr("name");
$('.updateField').editable({
type: 'text',
url: dataURL,
name: inputName,
placement: 'top',
title: 'Enter public name',
toggle:'manual',
send:'always',
ajaxOptions:{
dataType: 'json'
}
});
$('.edit').click(function(e){
var container = $(this).closest('.input-group'); // !!
var input = container.find('.updateField');
var inputName = input.attr('name');
var dataURL = input.data('url');
console.log(inputName);
e.stopPropagation();
container.find('.updateField').editable('toggle'); // !!
container.find('.edit').hide(); // !!
});
$(document).on('click', '.editable-cancel, .editable-submit', function(e){
$(e.target).closest('.input-group').find('.edit').show(); // !!
})
//ajax emulation. Type "err" to see error message
$.mockjax({
url: '/post',
responseTime: 100,
response: function(settings) {
if(settings.data.value == 'err') {
this.status = 500;
this.responseText = 'Validation error!';
} else {
this.responseText = '';
}
}
});
});
@Jess,我查看可导致此问题的问题:
中的console.log内容是基于:
var container = $(this).closest('.input-group'); // !!
var input = container.find('.updateField');
var inputName = input.attr('name');
代码获取“本”的内容,其次是.closest()函数至极GET第一个符合你的条件的元素;
但是,您所发送到PHP变量:
var dataURL = $('.updateField').data('url');
var inputName = $('.updateField').attr("name");
这是越来越从“.updatedField”的内容,并开始从文件的beggining获得。
我的猜测是,试着把一个唯一的ID给这个输入,并检查它是否工作。如:
<input id="test-id-sample" class="form-control updateField"
...
var inputName = $('#test-id-sample .updateField').attr("name");
谢谢,我将如何使用var作为ID,因为我会设置一个数据ID。类 –