it-swarm.com.de

Wie kann ich mehrere Datenfelder über Ajax versenden?

Ich bin festgefahren: Ich versuche, ein Formular mit AJAX zu senden, aber ich kann keine Möglichkeit finden, mehrere Datenfelder über meinen AJAX - Aufruf zu senden.

$(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) {...

Ich habe alle möglichen Sachen ausprobiert:

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

Oder sogar solche Sachen nur zu Testzwecken:

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

Was auch immer ich versuche, ich bekomme nichts in meinem activity_save.php also nichts in meiner SQL.

Also, was ist die richtige Syntax, um mehr Datenzeilen in meinem AJAX - Aufruf zu platzieren?

110

Die korrekte Syntax lautet:

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

Wie hier angegeben: http://api.jquery.com/jQuery.ajax/

Wenn dies nicht funktioniert, würde ich diese Variablen warnen, um sicherzustellen, dass sie Werte haben.

207
Avitus

sie können Daten über Json oder über normalen POST senden. Hier ein Beispiel für 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 somthing here
      }
 });

Wenn Sie es über die normale Post verwenden möchten, probieren Sie dies aus

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

Versuchen Sie es mit Anführungszeichen:

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

Es muss gut funktionieren.

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

danach kannst du folgendes machen:

var new_countries = countries.join(',')

nach dem:

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

Dieses Ding funktioniert als JSON-Stringformat.

4
Shahin

Laut http://api.jquery.com/jquery.ajax/

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

Dieser arbeitet für mich.

Hier ist mein 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>

Hier ist meine jQuery mit AJAX:

$("#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()
    }
  });
});
3

Ich bin ein Anfänger bei ajax, aber ich denke, dass ich diese "data: {status: status, name: name}" -Methode .__ verwenden soll. Datentyp muss auf JSON .__ gesetzt sein

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

Versuche dies:

$(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) {...
1
user4184048

Benutze das 

data: '{"username":"' + username + '"}',

Ich versuche viel mit der Syntax, um mit Laravel zu arbeiten.

Ich bin neu bei AJAX und habe es versucht und es funktioniert gut.

function q1mrks(country,m) {
  // alert("hellow");
  if (country.length==0) {
    //alert("hellow");
    document.getElementById("q1mrks").innerHTML="";
    return;
  }
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else {
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      document.getElementById("q1mrks").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","../location/cal_marks.php?q1mrks="+country+"&marks="+m,true);
  //mygetrequest.open("GET", "basicform.php?name="+namevalue+"&age="+agevalue, true)
  xmlhttp.send();
}
1
user2155518

Versuchen zu benutzen :

          $.ajax({
                type: "GET",
                url: "something.php",
                data: { "b": data1, "c": data2 },   
                dataType: "html",
                beforeSend: function(){  },
                error: function(){
                      alert("Error");
                },
                success: function(data){                                                    
                      $("#result").empty();
                      $("#result").append(data);

                }
          });


    });
0
user8161624

Folgendes funktioniert bei mir nach 2 Tagen Kopfkratzen: Warum ich die AJaX-Einstellung 'data' nicht zum Senden von zwei Schlüsseln/Werten (einschließlich einer Variablen mit Rohbilddaten) bekommen konnte, war ein Rätsel, aber das scheint das jQuery.param zu sein () Funktion wurde geschrieben für;

erstellen Sie ein params-Array mit Ihren Variablen ohne Anführungszeichen:

var params = { key_name1: var_1, key_name2: var_2  }; // etc.

var ser_data = jQuery.param( params );   // arbitrary variable name

Verwenden Sie die Variable ser_data als Datenwert.

      $.ajax({
       type: 'POST',
       url: '../php_handler_url.php',
       data: ser_data,
    }).success(function(response) {
       alert(response);
    });

Die Dokumentation finden Sie hier: https://api.jquery.com/jQuery.param/

Ich hoffe, das hilft!

0
big_lion