Я застрял: я пытаюсь отправить форму с помощью 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?
Правильный синтаксис: http://api.jquery.com/jQuery.ajax/
data: {status: status, name: name},
Если это не работает, я бы предупредил эти переменные, чтобы убедиться, что они имеют значения.
data: {status: status, name: name},
»
вы можете отправлять данные через Json или через обычный пост, вот пример для 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
}
});
Если вы хотите использовать его через обычный пост, попробуйте это
$.ajax({
type: "POST",
url: $('form').attr("action"),
data: $('#form0').serialize(),
success: function (result) {
// do somthing here
}
});
.serialize()
не определен!
Попробуйте использовать кавычки:
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>
Здесь мой jQuery с использованием 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()
}
});
});
Я новичок в ajax, но я думаю использовать этот метод "data: {status: status, name: name}" тип данных должен быть установлен в JSON то есть
$.ajax({
type: "POST",
dataType: "json",
url: "ajax/activity_save.php",
data: {status: status, name: name},
dataType
- это ответ типа контента, который вы ожидаете получить от сервера, а не то, что вы отправляете. Данные, которые вы отправляете, всегда будут преобразованы в foo=bar&bar=foo
.
Попробуйте следующее:
$(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: '{"username":"' + username + '"}',
Я стараюсь использовать синтаксис для работы с laravel он работает для меня для laravel 4.2 + ajax.
Я новичок в AJAX, и я пробовал это, и он хорошо работает.
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();
}
Попробуйте использовать:
$.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);
}
});
});
Вот что работает для меня после 2 дней царапин на голове; почему я не мог получить параметр "данных" AJaX для отправки двух ключей/значений (включая переменную, содержащую данные необработанного изображения), был загадкой, но это похоже на функцию jQuery.param() было написано для:
создать массив params с вашими переменными без кавычек:
var params = { key_name1: var_1, key_name2: var_2 }; // etc.
var ser_data = jQuery.param( params ); // arbitrary variable name
Использовать переменную ser_data в качестве значения вашей информации;
$.ajax({
type: 'POST',
url: '../php_handler_url.php',
data: ser_data,
}).success(function(response) {
alert(response);
});
Документация находится здесь: https://api.jquery.com/jQuery.param/
Надеюсь, что это поможет!
просто добавьте "& user" или используя сериализацию json, чтобы превратить его в json