我試圖從一個帖子請求中檢索四個值,但我只得到其中2個。該表單包含一個ID,步驟,名稱和電子郵件,但我只從隱藏的輸入中獲得。而不是用戶填寫的內容。我認爲這可能是jquery serialize()
,但我不確定。與ajax和jQuery的序列化()丟失值的POST請求
我試圖將輸入更改爲隱藏,然後添加value =「something」,它起作用。爲什麼認爲它與普通文本一起工作?
//從POST請求的結果是:
[position_id] => 229
[step] => 1
[name] =>
[email] =>
的形式如下:
<form id="referral-form" action="#" method="post">
<input type="hidden" name="position_id" value="{{$position->id}}" />
<input type="hidden" name="step" value="1" />
<div class="form-group">
<input name="name" class="form-control" type="text" id="name" required/>
</div>
<div class="form-group">
<input name="email" class="form-control" type="text" id="email" required />
</div>
<div id="legal">
<span class="loader-button"></span>
<div class="button submit"></div>
</div>
</form>
我有,如果用戶點擊,從而獲得發起了.button.submit
onRef: function(e) {
e.preventDefault();
var $form = $("#referral-form");
if(!$form.hasClass("ajax"))
{
$form.addClass("ajax");
$form.find('.error').css('display', 'none');
var req = $.post('/reff/ref', $form.serialize());
req.done(function(res) {
$form.removeClass("ajax");
if(res.success) {
//do somthing
}
else {
methods.printErrors(res.errors, $form);
mixpanel.track('onReferralValidationFailure', {
errors: res.errors,
positionId: exported.position.id,
companyId: exported.position.company_id
});
}
});
req.fail(function() {
$form.removeClass("ajax");
mixpanel.track('onReferralUnknownError', {
positionId: exported.position.id,
companyId: exported.position.company_id
});
});
}
},
JavaScript方法
當我嘗試檢索PHP中的/ reff/ref函數內的發佈數據時,很少得到這些數據。
[2016-07-07 11:58:39] local.INFO: Array
(
[position_id] => 229
[step] => 1
[name] =>
[email] =>
)
這是REFF/REF功能:
public function refer() {
$positionId = Input::get("position_id");
Language::setLanguageByPositionId($positionId);
if(Input::get("step") == 1) {
$validator = new ReferralStepOneValidator(App::make('validator'));
$validator->with(Input::all());
Log::info(print_r(Input::all(), true));
if($validator->passes()) {
$input = Input::all();
$referral = Referral::createReferralFromInput($input);
return Response::json(array(
'success' => true,
'reference' => $referral->reference,
));
}
else {
return Response::json(array(
'success' => false,
'errors' => $validator->errors()->toArray(),
));
}
}
你可以顯示/ reff/ref中的內容嗎? – awl19
確保'$ form'具有所有正確的數據,'$ form.serialize()'不會對他們做任何有趣的事情。 – apokryfos
您可以檢查您發送的數據(Chrome:開發者工具,網絡)並驗證發送請求中的哪些參數正在發送。 – mrlew