[jquery] Ajax를 통해 여러 데이터 필드를 보내는 방법은 무엇입니까? [닫은]

문제가 있습니다. AJAX를 사용하여 양식을 제출하려고하는데 AJAX 호출을 통해 여러 데이터 필드를 보내는 방법을 찾을 수 없습니다.

$(document).ready(function() {
  $("#btnSubmit").click(function()  {
    var status = $("#activitymessage").val();
    var name = "Ronny";
    $.ajax({
      type: "POST",
      url: "ajax/activity_save.php",
      **data: "status="+status+"name="+name"**,
      success: function(msg) {...

나는 모든 종류의 것들을 시도했다.

data: {status: status, name: name},

또는 테스트 목적으로 다음과 같은 것들도 있습니다.

data: "status=testing&name=ronny",

그러나 내가 시도하는 모든 것은 activity_save.php내 SQL에 아무것도 얻지 못합니다 .

그렇다면 AJAX 호출에 더 많은 데이터 줄을 넣는 올바른 구문은 무엇입니까?



답변

올바른 구문은 다음과 같습니다.

data: {status: status, name: name},

여기에 지정된대로 : http://api.jquery.com/jQuery.ajax/

그래도 작동하지 않으면 해당 변수에 값이 있는지 확인하도록 경고합니다.


답변

JSON 또는 일반 POST를 통해 데이터를 보낼 수 있습니다 (JSON의 예).

 var value1 = 1;
 var value2 = 2;
 var value3 = 3;
 $.ajax({
      type: "POST",
      contentType: "application/json; charset=utf-8",
      url: "yoururlhere",
      data: { data1: value1, data2: value2, data3: value3 },
      success: function (result) {
           // do something here
      }
 });

일반 게시물을 통해 사용하려면 이것을 시도하십시오

 $.ajax({
      type: "POST",
      url: $('form').attr("action"),
      data: $('#form0').serialize(),
      success: function (result) {
         // do something here
      }
 });


답변

따옴표로 시도하십시오.

data: {"status": status, "name": name}

잘 작동해야합니다.


답변

var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';

그 후에는 다음과 같이 할 수 있습니다.

var new_countries = countries.join(',')

후:

$.ajax({
    type: "POST",
    url: "Concessions.aspx/GetConcessions",
    data: new_countries,
    ...

이것은 JSON 문자열 형식으로 작동합니다.


답변

http://api.jquery.com/jquery.ajax/ 에 따르면

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
  alert( "Data Saved: " + msg );
});


답변

이것은 나를 위해 작동합니다.

내 PHP는 다음과 같습니다.

<div id="pageContent">
  <?php
    while($row = mysqli_fetch_assoc($stmt)) {
  ?>
  <br/>
  <input id="vendorName_" name="vendorName_<?php echo $row["id"]; ?>" value='<?php echo $row["vendorName"]; ?>'>
  <input id="owner_" name="owner_<?php echo $row["id"]; ?>" value='<?php echo $row["owner"]; ?>'>
  <input id="city_" name="city_<?php echo $row["id"]; ?>" value='<?php echo $row["city"]; ?>'>
  <button id="btn_update_<?php echo $row["id"]; ?>">Update</button>
  <button id="btn_delete_<?php echo $row["id"]; ?>">Delete</button>
  <?php
    }
  ?>
  </br></br>
  <input id = "vendorName_new" value="">
  <input id = "owner_new" value="">
  <input id = "city_new" value="">
  <button id = "addNewVendor" type="submit">+ New Vendor</button>
</div>

다음은 AJAX를 사용하는 jQuery입니다.

$("#addNewVendor").click(function() {
  alert();
  $.ajax({
    type: "POST",
    url: "create.php",
    data: {vendorName: $("#vendorName_new").val(), owner: $("#owner_new").val(), city: $("#city_new").val()},
    success: function(){
      $(this).hide();
      $('div.success').fadeIn();
      showUsers()
    }
  });
});


답변

나는 ajax의 초보자이지만이 “data : {status : status, name : name}”메소드 데이터 유형을 JSON으로 설정해야한다고 생각합니다.

$.ajax({
type: "POST",
dataType: "json",
url: "ajax/activity_save.php",
data: {status: status, name: name},