j'essaie d'envoyer plusieurs données à l'aide de la méthode j query $ .ajax à mon script php, mais je ne peux transmettre que des données uniques lorsque je concaténerai plusieurs données. envoyé j’ai besoin de savoir comment formater plusieurs données pour l’envoyer successivement au script de traitement en nom vale pair voici ce que j’ai écrit
<script>
$(document).ready(function() {
$('#add').click(function () {
var name = $('#add').attr("data_id");
var id = $('#add').attr("uid");
var data = 'id='+ id & 'name='+ name; // this where i add multiple data using ' & '
$.ajax({
type:"GET",
cache:false,
url:"welcome.php",
data:data, // multiple data sent using ajax
success: function (html) {
$('#add').val('data sent sent');
$('#msg').html(html);
}
});
return false;
});
});
</script>
<span>
<input type="button" class="gray_button" value="send data" id="add" data_id="1234" uid="4567" />
</span>
<span id="msg"></span>
Vous pouvez créer un objet de paires clé/valeur et jQuery fera le reste pour vous:
$.ajax({
...
data : { foo : 'bar', bar : 'foo' },
...
});
De cette façon, les données seront correctement encodées automatiquement. Si vous voulez concocter votre propre chaîne, assurez-vous d'utiliser encodeURIComponent()
: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent
Votre code actuel ne fonctionne pas car la chaîne n'est pas concoctée correctement:
'id='+ id & 'name='+ name
devrait être:
'id='+ encodeURIComponent(id) + '&name='+ encodeURIComponent(name)
Changer var data = 'id='+ id & 'name='+ name;
comme ci-dessous,
utilisez ceci à la place .....
var data = "id="+ id + "&name=" + name;
ça va bien marcher :)
var data = 'id='+ id & 'name='+ name;
L'esperluette doit également être citée:
var data = 'id='+ id + '&name='+ name;
var my_arr = new Array(listingID, site_click, browser, dimension);
var AjaxURL = 'http://example.com';
var jsonString = JSON.stringify(my_arr);
$.ajax({
type: "POST",
url: AjaxURL,
data: {data: jsonString},
success: function(result) {
window.console.log('Successful');
}
});
Cela fonctionne pour moi depuis un certain temps.
var value1=$("id1").val();
var value2=$("id2").val();
data:"{'data1':'"+value1+"','data2':'"+value2+"'}"
Je recommanderais d'utiliser un hash au lieu d'une chaîne de paramètres:
data = {id: id, name: name}
vous pouvez utiliser FormData
regardez mon extrait de MVC
var fd = new FormData();
fd.append("ProfilePicture", $("#mydropzone")[0].files[0]);// getting value from form feleds
d.append("id", @(((User) Session["User"]).ID));// getting value from session
$.ajax({
url: '@Url.Action("ChangeUserPicture", "User")',
dataType: "json",
data: fd,//here is your data
processData: false,
contentType: false,
type: 'post',
success: function(data) {},
var value1=$("id1").val();
var value2=$("id2").val();
data:"{'data1':'"+value1+"','data2':'"+value2+"'}"
Vous pouvez utiliser cette méthode pour transmettre des données
var CommentData= "u_id=" + $(this).attr("u_id") + "&post_id=" + $(this).attr("p_id") + "&comment=" + $(this).val();