在Laravel Controller中获取Js值

时间:2016-03-12 20:24:05

标签: javascript php jquery-plugins laravel-5.1 laravel-blade

如何在Laravel控制器中获取js值。我想传递隐藏字段中的值以保存在数据库中,但令我惊讶的是它保存了这些字段的空记录。当我在控制台上记录值时,我看到了它,但它没有作为值传递给控制器​​。我有什么更好的办法来处理这个问题?

 public function store(UserContactRequest $userContactRequest)
    {
        $phone           = $userContactRequest->phone_output;
         if(Auth::user()) {
            if($userContactRequest->isMethod('post')) {
               $userContact = UserContact::firstOrNew(array('user_id'=>Auth::user()->id));
                $userContact->phone     = $phone;
                $userContact->save();
                return redirect()->route('userContactIndex')->with('message', 'Your question has been posted.');
            }else{
                 return redirect('user/contact/create')->withErrors($userContactRequest)->withInput();
            }
         }
    }

这是刀片文件

<TH>FIELD</TH><TH>DECRIPTION</TH>
                    <input type="hidden" name="phone_output" id="phone_output">
                    <TR><TD><div>{!! Form::tel('phone', Input::old('phone'), ['class'=>'mid first-input-div', 'placeholder'=>'8023472436', 'id'=>'phone']) !!}</div></TD><TD class="font-description"><SPAN id="errNm1"><STRONG><I>FIRSTNAME</I></STRONG></SPAN> field requests the input of your surname or family name. Only <SPAN><STRONG><I>alphabets</I></STRONG></SPAN> are accepted as valid inputs. </TD></TR>

这是js文件:

$("#phone").intlTelInput();

var input = $("#phone"),
  output = $("#phone_output");

input.intlTelInput({
  nationalMode: true,
  utilsScript: "http://localhost:88/build/js/utils.js" // just for formatting/placeholders etc
});

// listen to "keyup", but also "change" to update when the user selects a country
input.on("keyup change", function() {
  var intlNumber = input.intlTelInput("getNumber");
  if (intlNumber) {
    output.text("International: " + intlNumber);
    console.log(intlNumber);
  } else {
    output.text("Please enter a number below");
  }
});

1 个答案:

答案 0 :(得分:1)

您应该使用output.val()为隐藏的输入字段设置值。 您已使用output.text()代替。

更新了代码段:

input.on("keyup change", function() {
  var intlNumber = input.intlTelInput("getNumber");
  if (intlNumber) {
    output.val("International: " + intlNumber);
    console.log(intlNumber);
  } else {
    output.val("Please enter a number below");
  }
});