Nasıl $ yok. JQuery ile bir dizi yayınlamak yüzden benim PHP dosyası dizi kullanabilirsiniz?

4 Cevap php

JQuery aşağıdaki kod parçası var:

function saveSchedule()
{
    var events = [];

         $('ul#schedule-list').children().each(function() {
             events.push($(this).attr('value'));
         });

         jQuery.each(events, function()
         {
             alert(this);
         });


         $.post("schedule_service.php?action=save_schedule", 
         { events: events, studentid:  $('#student').val() }, 
         function(data) { 
             alert(data);
         }, 'json');   
     }

Hangi sayfamda bir listeden tüm değerlerini 'alır ve olaylar diziye koyar.

Sonra, aşağıda benim $. Sonrası arama veri bölümünde içine diziye artı bir StudentID geçmek.

Ben PHP tarafında bu diziyi aldığınızda Ancak, bir tekil değer gibi görünüyor:

<?php

    include_once('JSON.php');
    $json = new Services_JSON();


    if ($_GET['action'] == 'save_schedule')
    {
        $event_list = $_POST['events'];

        echo $json->encode($event_list);
        exit;
    }
?>

(Not: PHP eski bir sürümünü, dolayısıyla JSON.php kitaplığı kullanıyorum.)

Şimdi, bütün bu hiç döndürür olaylar dizisindeki son olay olduğu "14" dir.

Post:
alt text

Response:
alt text

Nasıl benim Doları dizi geçirmeden ele duyuyorum. Sonrası yanlış?

4 Cevap

Bu saçma görünebilir, ama bu deneyebilirsiniz:

$.post("schedule_service.php?action=save_schedule", 
         { 'events[]': events, studentid:  $('#student').val() }, 
         function(data) { 
             alert(data);
         }, 'json');

PHP otomatik olarak php içinde gerçek bir diziye anahtar adını events[] ayrıştırmak ...

Neden JSON kullanmak değil mi? JSON nesne olarak JavaScript dizi geçirmek ve PHP ayrıştırmak.

Sen bir karakter tarafından birleştirilmiş tüm unsurları oluşan bir dizge olarak dizi öğelerini iletebilirsiniz. Sonra php kod dizi ayırabilir ve orada değerlerini ayıklamak.

join() Bir dizinin elemanlarını katılmak için kullanın.

(ayırıcı) katılmak;

separator:

Specifies a string to separate each element of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma.

explode() on the PHP side to turn the join() ed dize geri birlikte kullanın.

İster inanın ister inanmayın, sadece (parantez olmadan) $.post isteği yerine events: events in 'events[]': events kullanın.