Como enviar vários campos de dados através do Ajax? [fechado]
$(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) {...
Já tentei todo o tipo de coisas.
data: {status: status, name: name},
ou mesmo coisas como esta só para fins de teste:
data: "status=testing&name=ronny",
Mas seja o que for que eu tente, Não tenho nada no meu SQL.
Então, qual é a sintaxe correta para colocar mais linhas de dados na minha chamada AJAX?
12 answers
A sintaxe correcta é:
data: {status: status, name: name},
Tal como se especifica aqui: http://api.jquery.com/jQuery.ajax/
Então, se isso não funcionar, eu alertaria essas variáveis para garantir que elas têm valores.Você pode enviar dados através de Json ou através de POST normal, aqui está um exemplo para 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
}
});
Se você quiser usá-lo através do post normal tente este
$.ajax({
type: "POST",
url: $('form').attr("action"),
data: $('#form0').serialize(),
success: function (result) {
// do somthing here
}
});
Tenta com aspas:
data: {"status": status, "name": name}
Deve funcionar bem.
var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';
Depois disso podes fazer como:
var new_countries = countries.join(',')
Depois de:
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: new_countries,
...
Esta coisa funciona como formato JSON string.
De Acordo com http://api.jquery.com/jquery.ajax/
$.ajax({
method: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
<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>
Aqui está o meu jQuery a usar 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()
}
});
});
Sou um principiante no ajax, mas penso em usar este método de" dados: {Estado: Estado, nome: nome}" o tipo de dados deve ser definido como JSON i. e
$.ajax({
type: "POST",
dataType: "json",
url: "ajax/activity_save.php",
data: {status: status, name: name},
Utilize este
data: '{"username":"' + username + '"}',
Tento uma grande sintaxe para trabalhar com o laravel.
funciona para mim para o laravel 4,2 + ajax.
Tenta isto:
$(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) {...
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();
}
Aqui está o que funciona para mim depois de 2 dias de coçar a cabeça; por que eu não consegui obter a configuração de 'dados' AJaX para enviar duas chaves/valores (incluindo uma variável contendo dados de imagem raw) foi um mistério, mas isso parece ser o que o jQuery.a função param () foi escrita para;
Crie uma lista de Parâmetros com as suas variáveis, sem aspas:
var params = { key_name1: var_1, key_name2: var_2 }; // etc.
var ser_data = jQuery.param( params ); // arbitrary variable name
Utilize a variável ser_data como valor dos seus dados;
$.ajax({
type: 'POST',
url: '../php_handler_url.php',
data: ser_data,
}).success(function(response) {
alert(response);
});
A documentação está aqui.:
https://api.jquery.com/jQuery.param/
Espero que isso ajude!
Tente usar:
$.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);
}
});
});