Передача массива .php в код javascript jquery / ajax - PullRequest
0 голосов
/ 15 августа 2010

На данный момент у меня есть этот кусок кода JavaScript:

//Display custom confirm box and delete multiple message

$(document).ready(function () {
    $(".delete_button-multiple").click(function () {
        //Get message id as variable
        var id = $(this).attr("id");
        var dataString = 'id=' + id;
        var parent = $(this).parent();
        //Display custom Confirm box  
        jConfirm('Are you sure you want to delete this message?', '', function (r) {
            if (r == true) { //initiate delete message if agreed

                $.ajax({
                    type: "POST",
                    url: "delete-mail_ajax.php",
                    data: dataString,
                    cache: false,

                    success: function () {
                        window.location = "mail_inbox.php";
                    }
                });

                return false;
            }
        });

    });
});


delete-mail_ajax.php:

if($_POST['id'])
{
$id=$_POST['id'];
$id = mysql_escape_String($id);
$sql = "delete FROM mail WHERE mail_id='$id'";
mysql_query( $sql);
} 

Это рабочий код для удаления только одного почтового элемента.Я написал следующий код для удаления нескольких сообщений из флажков:

        //Multiple delete mail
        if(!empty($_POST['message'])){ 
        $list_mail = $_POST['message'];
        foreach ($list_mail as $messageID){    
        $sql = "delete FROM mail WHERE mail_id='$messageID'";
        mysql_query($sql);
        //deletion complete, refresh the page
        header("Location: mail_inbox.php");
        }
        }//end delete multiple 

Трудность, с которой я сталкиваюсь, заключается в изменении приведенного выше рабочего кода для включения множественного выбора и удаления выбранных писем.1008 * Любая помощь по этому вопросу будет принята

-Callum

Ответы [ 2 ]

2 голосов
/ 15 августа 2010

Если вы используете чекбоксы, ваш код будет выглядеть примерно так:

var messages = new Array();
$("input[name='mail_items[]']:checked").each(function() {
   messages.push($(this).val());
});

$.ajax({
   type: "POST",
   url: "delete-mail_ajax.php",
   data: { message: messages }  //jQuery should translate this to an array that PHP should understand
   cache: false,
   ...
});

Возможно, вам потребуется json_decode для ввода в переменную $ _POST ['message'], но я сначала сделал бы var_dump () для вещей, просто чтобы убедиться, что PHP делает в фоновом режиме. Не могу проверить в данный момент, извините.

0 голосов
/ 15 августа 2010

Я полагаю, у вас есть проблемы с отправкой формы через Ajax? Есть отличный плагин, который сделает это за вас: http://jquery.malsup.com/form/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...