jQuery, нужна помощь с «sortreceive» вызовом ajax и POST-переменными - PullRequest
0 голосов
/ 06 августа 2010

У меня есть дилемма, которая сейчас кажется мне просто не по силам!

У меня есть группа связанных сортируемых элементов, использующих класс 'biglist'.

То, что я хочу сделать, это связать обратный вызов sortbceive #biglist (который создается всякий раз, когда список получает элемент от другого), чтобы получить значение элемента 'boxnum' (которое указывает, из какого списка он поступает)) и выполните запрос UPDATE, изменив значение идентификатора boxnum идентификатора с скажем 5 (список, из которого он получен) на 7 (список, в который он был перетащен), чтобы состояние сохранялось.)

$( "#biglist" ).bind( "sortreceive", function(event, ui) {
  ajax call to boxchange.php
  create vars to represent elements 'boxnum' value and 'box moved to' value     

});

Тогда внутри boxchange.php ->

 $id = $_POST['id']
 $box = $_POST['boxnum']
 ->update query SET boxid to new boxid WHERE id = posted ID of element

Надеюсь, это имеет смысл.Кажется, это довольно приятный способ заставить мою программу работать!Любая помощь очень ценится.

EDIT:

Просто очистил функцию, чтобы увидеть, есть ли какие-либо изменения, которые необходимо внести в нее (которые, как я знаю, есть, потому что она выглядит небрежно)быть скопированным / измененным для каждой сортируемой отдельно, но это, по крайней мере, полностью заставит программу работать!

function ReceiveTwo() 
{
$('#sortable2').bind('sortreceive', function(event, ui) 
                    {
                        boxnum = $(this).attr('boxnum');
                        id = $(this).attr('id');
                       $.ajax
                            ({
                        url: "boxchange.php",
                        type: "POST",
                        data: boxnum, id,
                        success : function(feedback)
                            {
                            $('#data').html(feedback)
                            }

                            })
                    });
                    $('#sortable2').sortable("refresh");
});

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010
$('#sortable2').bind('sortreceive', function(event, ui) {
   $.ajax({
     url: "boxchange.php",
     type: "POST",
     beforesend: function(){
        boxnum = $(this).attr('boxnum');
        id = $(this).attr('id');
     },
     data: {'boxnum': boxnum, 'id': id},
     success : function(feedback) {
        $('#data').html(feedback),
     }
   });
});

beforesend - событие, которое срабатывает перед вызовом ajax. Я считаю, что здесь вы можете настроить свои свойства, чтобы выполнить то, что вы хотите.

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

Я думаю, что для отправки данных Javascript на серверный сценарий PHP используется ассоциативный массив Javascript, например:

$.ajax({
  url: "boxchange.php",
  type: "POST",
  data: {'boxnum': boxnum, 'id': id},
  success: function(data,status) { ... }

Ваш скрипт "boxchange.php" сможет получить доступ к этим переменным через $ _POST ['boxnum'] и $ _POST ['id'].

Я думаю, что это была ваша цель, но я не совсем уверен ...

...