потерять первый элемент данных JQuery AJAX вызова - PullRequest
0 голосов
/ 25 октября 2011

У меня проблема, которую я не могу понять.

Я использую надстройку tableDND jQuery, которая позволяет перетаскивать строки таблицы.Я хочу отправить эти строки на сервер и загрузить их в базу данных mySQL.

Мой код приведен ниже, в основном, когда я добираюсь до PHP, первый элемент переменной batting пропал.Есть идеи?

Итак, у меня есть следующий javascript:

$('#order').tableDnD({
        onDrop: function(table, row) {

            var batting = $.tableDnD.serialize();
            var id = <?php echo $id;?>;

            $.ajax({
                type: 'POST',
                url: 'update_batting.php',
                data: '{ "batting":' + batting + ', "id":'+ id +' }',
                dataType: 'json',
            });

        }
    });

и следующий php:

<?php

$batting = json_encode($_POST['order']);

$query = "INSERT INTO test (t) VALUES ('$batting')";
mysql_query($query);

?>

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Хорошо, так что это мое грубое предположение, так как я должен идти в ближайшее время ...

Я думаю, что, поскольку "данные" преобразуются в строку запроса, они неправильно читаются.Я думаю, что ваш пост, вероятно, читает это:

$_POST['batting'] = 'order[]=110209';
$_POST['order'] = 'order[]=100245&order[]=100007&order[]=100296&order[]=10‌​0213&order[]=100071&order[]=100125&order[]=110206&order[]=110205&order[]=100152&o‌​rder[]=100247&order[]=100329&order[]=100299&order[]=100243';
$_POST['id'] = '662852670';

Поскольку первое появление амперсанда завершает вашу переменную.

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

data: '{ "batting":"' + batting + '", "id":'+ id +' }',

Это изменит ожидаемую переменную $ _POST ['order'] на "$ _POST ['batting']. Однако ваш объект данных должен содержаться так, как я уже упоминалв приведенном выше комментарии.

data: {order: '"' + batting + '"', id:id},

Вместо отправки в виде строки без ключа, как в примере кода.

Попробуйте var_dump ($ _ POST) в php, чтобы увидеть все значения, которые вы '... просто из любопытства.

** Извините за все правки. Я постоянно отвлекаюсь на работе ...

0 голосов
/ 25 октября 2011

Вы пытались удалить пробелы с каждой стороны "+ ватин +" .... как '+ ватин +' ....

...