簡體   English   中英

將數據從Javascript傳遞到Laravel控制器

[英]passing data from Javascript to Laravel controller

運行以下代碼時,出現MethodNotAllowedHttpException錯誤:

<h1>Temp Form</h1>
<form method="post" action="" role="form">
  <input type="hidden" name="_token" value="{{ csrf_token() }}">
  <div class="panel panel-default ">
    <div class="container">
      <div class="panel-body">
        <div class="form-group">
          <label for="firstName">First Name *</label>
          <input name="fname" type="text" class="form-control" id="firstName" placeholder="Enter First Name" required>
        </div>
        <div class="form-group">
          <label for="lastName">Last Name *</label>
          <input name="lname" type="text" class="form-control" id="lastName" placeholder="Enter Last Name" required>
        </div>
        <div class="form-group">
          <label for="qualification">Qualification *</label>
          <input name="qualification" type="text" class="form-control" id="qualification" placeholder="BE, MCA, MBA Etc." required>
        </div>
        <div class="form-group">
          <label for="emailAddress">Email address *</label>
          <input name="email" type="email" class="form-control" id="emailAddress" placeholder="Enter Email" required>
        </div>
        <div class="form-group">
          <label for="contactmessage">Message</label>
          <textarea name="desc" type="text" class="form-control" id="contactmessage" placeholder="Message" rows="2"></textarea>
        </div>
        <input type="submit" id="add" class="btn btn-primary" onclick="addUpdateData(id)" value="Add"></button>
      </div>
    </div>
  </div>
</form>

用於route.php的代碼:

Route::post('welcome/addupdate','FormController@addUpdateData');

控制器代碼:

 public function addUpdateData(Request $req)
 {
    $id = $req->input('id');
    if($id=="add")
    {
        $bs = new Basicusers;

        $bs->fname = $req->fname;
        $bs->lname = $req->lname;
        $bs->qualification = $req->qualification;
        $bs->email = $req->email;
        $bs->desc = $req->desc;

        $bs->save();

        return "Data Successfully Added";
    }
  }

我想要的是,當用戶單擊添加按鈕時,傳遞了變量data add中的值,並且在控制器上,我將檢查變量的值,如果它是add ,則執行添加操作。

同時,如果用戶單擊下面在表單中提供的edit按鈕,則該行將被填充在表單元素中,並且添加按鈕被更改為更新按鈕,並且變量data值現在將被update並且我要執行更新操作。 。

此外,使用POST方法傳遞數據時出現錯誤,我不知道如何使用POST方法傳遞數據。

對於GET方法,我正在使用$id = Input::get('id'); 方法及其工作

這是JavaScript函數:

function addUpdateData(data) {
  $(function() {
    $.ajax({
      method: "post",
      url: "welcome/addupdate",
      data: {
        id: data
      },
      success: function(response) {
        alert(response);
      }
    });
  });
}

嘗試在ajax請求中使用絕對路徑:url:“ / welcome / addupdate”

為您的表單(例如#form)添加一個ID,然后將表單中的序列化數據傳遞給addUpdateData函數。

$('#add').on('click', function(e) {
  e.preventDefault();

  var data = $('#form').serialize();

  addUpdateData(data);
});

還將一個輸入字段作為隱藏類型添加到表單中,該表單應具有現有資源的ID。 然后,在控制器操作上,您可以獲取傳遞的數據的數組,如果資源的ID存在,則執行更新。 如果沒有,則創建它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM