jQuery - Şimdi: bir nesne oluşturma ve AJAX çağrısı geçirmek için ona değerlerini saklamak

3 Cevap php

Ben bir dizi var:

myarr = [];

Ben bazı değerleri ile doldurma ediyorum:

myarray['name'] = "Me!";

Şimdi Key => Değer çifti seti içine dizi dönüştürmek istiyor. Ama jQuery bunu otomatik olarak yapmak istiyorum, ama görünmüyor.

$.ajax
({
    type: "POST",
    dataType: "text",
    url: "myurl",
    data: myarr
});

Bir bunu yapmak için bir yol ya da ben yanlış yapıyorum bir şey var mı? Ben hiçbir javascript hataları olsun, ve diğer hiçbir serverside hataları sonra hiçbir POST bilgileri hiç.

Ben bir true POST request olarak gönderilmesi isteği gerekir. Bazen login won't bir AJAX çağrısı çünkü ben basit php kodunu tutmak gerekir.

Ben şimdi unexepected token ':' bir hata ile aşağıdaki çalışıyorum

myarr:
{
    'name':'me'
}

Şimdi soru haline geldi: How do I initialize a new javascript object as "blank", how do I set up mappings, and how do I pass it in an AJAX call?

3 Cevap

Veri niteliği bir nesne, bu nedenle o gibi notasyonu kullanır:

data: { 'Name': 'Me!' }

Değil

data: ['Name':'Me!']

Bir nesne için dizi dönüştürmek gerekir. Kolayca bir dizi yerine bu yapabilirsiniz:

myData.Name = 'Me';
myData.OtherProp = 'Something';

İşte bazı örnekler var:

$.ajax({
    type: 'POST',
    dataType: 'text/html',
    url: 'myUrl.php',
    data:
    {
        'Name': 'Me!'
    },
    success: function(data, status)
    {
        // data is the returned response
    }
});

VEYA

var myObject = new Object();

myObject.Name = 'Me!';

$.ajax({
    type: 'POST',
    dataType: 'text/html',
    url: 'myUrl.php',
    data: myObject
});

Hem sizi doğru yere almalısınız.

Doğrudan dizi geçemez, önce onu kodlamak ve sonra geçmesi gerekir. Örneğin JSON olarak kodlamak için json.org adlı json2.js kullanabilirsiniz:

var mydata = JSON.stringify(myarr);
$.ajax
({
 type: "POST",
 dataType: "text",
 url: "myurl",
 data: {"mydata" : mydata}
});

Sonra geri bir dizi json dize dönüştürmek için PHP json_decode kullanmanız gerekecektir.

Update

Yeni soruları için:

How do I initialize a new javascript object as "blank"?

Öyle gibi yeni bir nesne oluşturabilirsiniz:

var myObj = {};

How do I set up mappings?

Bir kaç farklı yolu vardır:

myObj.name = "Me!";
myObj['name'] = "Me!";

How do I pass it in an AJAX call?

Sadece data argüman olarak bunu doğrudan pass:

data: myObj

Nerelerdeydin tam gibi devam, ama (bir nesne için dizi hangi değişiklikleri) {için [ve]} değiştirin