Nasıl $ üzerinden bir php script javascript nesnenin bir dizi gönderebilirsiniz. Gönderebilir?

2 Cevap php

Ben sayfamda verilerin bir tablo var. Sütunlar "start", "end", "yorum" ve "seçenekler" dir. Seçeneklerin içindeki sütun satır silmek için bir düğme ve düzenlenebilir tablonun bir satırı yapan bir düğme. Bu "start", "son", ve "açıklama" değerleri değiştirilmesini sağlar. Tekrar tıklayarak düzenleme işlemini bitirir. Son olarak, tabloya başka bir satır eklemek için bir yol var. Beklendiği gibi tüm bu işleri.

Ben tablodaki verilerin dışında bir dizi oluşturur altındaki bir düğme eklemek istiyorum ki (: gerekli değil tamamen SO gösteren kolaylığı için JSON olarak temsil) bu gibi görünüyor:

[
    {
    	"start"		:"2009/08/01",
    	"end"		:"2009/08/08",
    	"comment"	:"an example date.",
    },
    {
    	"start"		:"2009/07/01",
    	"end"		:"2009/07/08",
    	"comment"	:"another example date, a month earlier.",
    },
    {
    	"start"		:"2000/07/01",
    	"end"		:"2000/07/08",
    	"comment"	:"another example date, a year earlier. You get the idea.",
    }
]

Ben çok fazla sorun bir dizi bina yok, ama ben bir kere, nasıl ben (daha sonra put_csv() bir dosyaya veri yazmak için kullanacağınız) bir arka uç php script için gönderebilir miyim? İdeal olarak, doğrulama izin vermek için, bir dizi formatında availiable sunucu tarafında olacaktır.

Gerekli eğer ben, jquery kullanmak mutluyum.

2 Cevap

Eğer sunucuya sona Nasıl arşivlemiştik ne istiyorsun bağlıdır. Eğer verileri işleyecek olan, yeni bir sayfa yüklemek istiyorsanız, gizli girişli bir olağan formu kullanabilirsiniz. Eğer işlemek istiyorsanız Alternatif CRasco söylediği gibi jQuery.ajax kullanmak, AJAX ile arka planda. Kullandığınız her iki şekilde, basit bir anahtar / değer listesine yapılandırılmış dizi dönüştürmek gerekir.

Bir seçenek (jQuery bunun için bir fonksiyon sağlar sanmıyorum, ama kolayca şey bulabilirsiniz) ve tefrika belge ile tek bir alanda kullanmak json belge üretmektir. Ardından sunucu tarafta json_decode geri dizisini almak için kullanmak istiyorum. Eğer AJAX yöntemini kullanıyorsanız, jQuery.ajax çağrısında veri seçeneği içerecektir:

{
    'data': '[{"start":"2009/08/01","end":"2009/08/08","comment":"an example date."},...'
}

Daha iyi bir yaklaşım PHP özgün anlayacağı bir biçimde alanların bir liste halinde seri olacaktır. Yani özel bir şey yapmak zorunda kalıyoruz, ve $_POST['data'] dizi içerecektir. Örneğin:

{
    'data[0][start]': '2009/08/01',
    'data[0][end]': '2009/08/08',
    'data[0][comment]': 'an example date.',
    'data[1][start]': '2009/07/01',
    'data[1][end]': '2009/07/08',
    'data[1][comment]': 'another example date, a month earlier.',
    ... 
}

Eğer form yöntemini kullanıyorsanız, sizin gibi giriş alanları oluşturmak gerekiyor:

<input type="hidden" name="data[0][start]" value="2009/08/01" />

Ben kesinlikle jQuery kullanmak istiyorum. Burada $. Yazı () fonksiyonu için sayfasıdır.

http://docs.jquery.com/Ajax/jQuery.post

Bir ihtar sonrası () basitleştirilmiş ve başarılı bir yazı için bir şey ama geri çağrıları ayarlamak için yeteneğini ortadan kaldırır $. Ajax () fonksiyonu için bir sarıcı olduğunu $. Olduğunu. AJAX ile önemli işlemler için, ben bu kullanmak:

http://docs.jquery.com/Ajax/jQuery.ajax

Bir örnek olarak:

$.ajax({
      url: "script.php",
      global: false,
      type: "POST",
      data: ({id : this.getAttribute('id')}),
      dataType: "html",
      success: function(msg){
         alert(msg);
      }
   });