Я использую jquery ui sortable, чтобы переупорядочить список через php, я получаю идентификаторы так:
var ids = $('#sort1').sortable('serialize');
Работает нормально когда на update
в вызове Аякса я передаю data
в вызове ajax вот так:
data: ids
А затем поймайте внутри моего php-скрипта вот так (обратите внимание на единственное число):
$getids = $_POST['id'];
Все это прекрасно работает, однако я хочу передать данные внутри объекта, потому что есть и другие вещи, которые я хочу передать, но, похоже, это не работает.
Я старался:
data: {
id: ids
},
тогда я получаю эту ошибку PHP:
Warning: Invalid argument supplied for foreach() in C:\wamp\www\sortable\sort.php on line 8
И я также попытался изменить $getids = $_POST['id'];
в $getids = $_POST['ids'];
но затем я получаю неопознанный индекс, а также неверный аргумент ошибки.
Как я могу передать ids
внутри объекта как пара ключ-значение?
РЕДАКТИРОВАТЬ:
код foreach
$count = 1;
foreach ($getids as $key => $id) {
$q = "UPDATE titles SET sorting='$count', parent_id='1' WHERE id='$id'";
$r = mysqli_query($dbc, $q);
if ($r) {
echo 'done <br>';
} else {
echo 'problem <br>' . mysqli_error($dbc);
}
$count++;
}
У меня была эта проблема, и я наткнулся на этот пост, так как он не содержит никакого кода для решения этой проблемы. Я наконец нашел решение, которое сработало для меня …
В своем Ajax-запросе я преобразовал свой сортируемый пользовательский интерфейс в массив, используя следующее:
var data = $(this).sortable('toArray');
Затем запрос Ajax был отправлен следующим образом:
data: { sectiononelink: data, currentUserID: user_id },
Тогда, потому что функция сортируемой по массиву дала мне строку, такую как sectionone-asectionone-bsectionone-csectionone-d и т. Д. Я хотел только буквы после части sectionone-строки, когда искал, чтобы упорядочить список в мой HTML, используя буквы а — я.
В моем PHP я использовал цикл foreach, который содержал:
$profileLinkOrder = "";
foreach($_POST['sectiononelink'] as $value)
{
$profileLinkOrder .= substr(strstr($value, "-"), 1);
}
Тогда переменная $ profileLinkOrder будет выглядеть как abcdefg и т. Д … В зависимости от того, как у меня был мой сортируемый список пользовательского интерфейса на моей HTML-странице.
Это сработало для меня, поэтому я надеюсь, что кто-то еще может использовать это для решения этой проблемы. Я не мог найти другие решения в Интернете. Позвольте мне знать, если это помогает.
Других решений пока нет …