AJAX isteği ile yardımcı

3 Cevap php

The Problem
I am tring to do an ajax request to a PHP script, however I am having a problem getting the data into the format that the PHP is expecting it, the PHP is expecting the data to come in as array within an array something like,

Array
(
    [cv_file] => Array
        (
            [849649717] => Y
            [849649810] => Y
        )

    [save] => Save CVs
)

What have I tried?

Ben, boş bir dizi oluşturmak ve dizi tuşu, böyle bir şey olarak kullanmak benim javascript denedi

    var cv_file = new Array();
$(".drag_check").draggable({helper:"clone", opacity:"0.5"});
$(".searchPage").droppable({
    accept:".drag_check",
    hoverClass: "dropHover",
    drop: function(ev, ui) {
        var droppedItem = ui.draggable.children();
        cv_file = ui.draggable.children().attr('name');
        var link = ui.draggable.children().attr('name').substr(ui.draggable.children().attr('name').indexOf("[")+1, ui.draggable.children().attr('name').lastIndexOf("]")-8)
        $.ajax({
            type:"POST", 
            url:"/search",
            data:cv_file+"&save=Save CVs",
            success:function(){
                alert(cv_file)
                $('.shortList').append('<li><input type="checkbox" value="Y" class="checkbox" name="remove_cv['+link+']"/><a href="/cv/'+link+'">'+link+'</a></li>');
            },
            error:function() {
                alert("Somthing has gone wrong");
            }
        });

    }
});

My Question

Nasıl PHP bekliyor biçime veri alabilirsiniz, ben herkesin verebileceği herhangi bir yardım takdir ediyorum?

Edit
On alerting what the poster in the comments suggested I get he following,

cv_file[849649717]&save=Save CVs

Teşekkür ederim

3 Cevap

Arka-uç PHP dosyası bir PHP dizideki sonuç almak için, sunucuya geri POST aşağıdaki gibi bir dize oluşturmanız gerekir:

cv_file[]=849649717&cv_file[]=849649810&save=Save CVs

Ben bu yöntemi kullanarak ilişkilendirilebilir bir dizi oluşturmak sanmıyorum, ama yukarıda size $_POST aşağıdaki gibi bir dizi vermelidir:

Array
(
    [cv_file] => Array
        (
            0 => 849649717
            1 => 849649810
        )

    [save] => Save CVs
)

O zaman sadece bir foreach yapabilirsiniz:

foreach ($_POST['cv_file'] as $cv)
{
    // Do something with $cv;
}

Daha sonra tekrar bir dizi dize dönüştürmek için PHP tarafında bir json_decode yapın Array / Nesne stringify olabilir.

EDIT: şimdi doğru PHP fonksiyonu ile.

POST veri dizisini oluşturmak için $ (form). SerializeArray () kullanın. serializeArray API doc