jQuery each () приводит к преобразованию массива в php в базу данных

#php #jquery #arrays #each

#php #jquery #массивы #каждый

Вопрос:

В основном, что я делаю, это создаю своего рода систему приглашений, пользователь нажимает на пользователей, и они переходят в список, все работает, я могу получить их идентификаторы с помощью each (), но мне нужно передать это через jQuery Ajax в php, чтобы отправить его в базу данных для уведомлений. Это в основном то, что у меня есть:

 $(".group-video-create").click(function(){
    var url = $(".group-input-url").val();                                      
    var exp = /(b(https?|ftp|file)://[-A-Z0-9 amp;@#/%?=~_|!:,.;]*[-A-Z0-9 amp;@#/%=~_|])/ig;
    var checked_url = url.match(exp,"<a href='$1'>$1</a>"); 
    if(checked_url)
    {   
        $("#group-input-names li").each(function(){ // This is the relevant code
        var user_id = $(this).attr("id");           // Here too
        });                                         // amp; here

        if(user_id)
        {

            $.ajax({
                type: "POST",
                //url: "",
                //data: "", //this would be an array of all of the ids, (could be 1, could be 100).
                cache: false,
                success: function(html){
                    ///Once all invitations have been sent to the database it would then load a new div and hide the previous one. 
                    }
            });
        }
    }
});
  

если вы хотите увидеть, чего я пытаюсь достичь, просто перейдите сюда:

http://www.kithell.com/#/video

usr: PhpFreak@yahoo.com передача: phpfreaklogin

Это в разделе групповое видео. (Вы должны быть автоматически перенаправлены туда после входа в систему)

Комментарии:

1. jQuery пишется «jQuery», никогда «Jquery».

Ответ №1:

Возможно, вы сможете использовать jQuery.serialize для объединения всех данных вашей формы. Кроме того, jQuery.post — это хороший ярлык для выполнения запроса POST с помощью jQuery.ajax .

Грубый пример может выглядеть так:

 $.post( '/my-ajax-service.php', 
        $('#MyForm').serialize(), 
        function(data, txtStatus, jqXHR) {
            //Do stuff
});
  

Ответ №2:

Вот одна из возможностей

http://jsfiddle.net/nickywaites/9GZ2e/

 $(function() {

//I would use jQuery Map to build Array
//http://api.jquery.com/map/
var ids = $("#group-input-names li").map(function() {
    return $(this).attr("id");
}).get(); //Get Required to convert to regular javascript array

console.log(ids);

var invites = {}
invites.users = ids;

//Then use JSON.stringify() to pass array to server
//https://github.com/douglascrockford/JSON-js
if (ids.length > 0) {
    $.ajax({
        type: "POST",
        //url: "",
        data: JSON.stringify(invites),
        cache: false,
        success: function(html) {}
    });
}

});