Хорошо, во-первых, я извиняюсь, если этот вопрос уже задавался, я провел последние 12 часов, просматривая сотни тем форума, и пока не нашел ни одного, который бы точно отвечал на этот вопрос, так что здесь. *
У меня есть страница, которую я создал, в которой есть список пользователей, который заполняется автоматически при входе пользователей, и у каждого пользователя есть флажок, который позволяет хосту выбирать пользователей и удалять их при необходимости. Я использую jQuery для отправки строки массива на страницу php, где я пытаюсь взорвать строку, пройти по идентификаторам пользователей и удалить переданные идентификаторы из нашей базы данных. Все это работает очень хорошо, если я не выберу более одного пользователя. Когда я выбираю более одного пользователя и передаю массив обработчику php, он взрывает массив, но сохраняет только последнее значение в массиве, а остальное теряется где-то в черной дыре сценариев.
Вот мой код со страницы Javascript:
function rem_user() {
var ids = $('input:checkbox[id=del]:checked').map(function(){
return this.value
}).get();
alert(ids);
jQuery("#rem_msg").load(controlpage, {AdmFnc: "rem_user", del_ids: ids}, getUsers);
}
этот массив затем передается на страницу управления php, где он обрабатывается:
if (strcmp($AdmFnc, rem_user) == 0){
echo "";
$ids = trim($_POST['del_ids']);
$ids = explode(',',$ids);
if(is_array($ids)){
foreach($ids as $userid){
mysqli_query($dbc, "UPDATE webcastlogin SET logoutTime = '$current_time' WHERE userid = '$userid'") or die('Error setting logout time '.mysqli_error($dbc));
mysqli_query($dbc, "DELETE FROM weekly_users WHERE userid = '$userid'") or die('Error removing users '.mysqli_error($dbc));
}
echo 'Selected IDs removed';
} else if (empty($ids)) {
echo 'Code is wrong, no array sent';
} else {
mysqli_query($dbc, "UPDATE webcastlogin SET logoutTime = '$current_time' WHERE userid = '$ids'");
mysqli_query($dbc, "DELETE FROM weekly_users WHERE userid = '$ids'");
echo 'Selected ID removed';
}
}
Как вы можете видеть на моем javascript, у меня настроено оповещение, чтобы я мог проверить, что отправляемая информация верна, насколько я могу судить по этому предупреждению, это массив ","
с разделителями, поэтому использую на стороне php, чтобы взорвать его.
Я нахожусь в своем уме, пытаясь выяснить, почему, когда я запускаю это через цикл foreach, я получаю только значение последнего элемента в массиве.
Любая помощь будет принята с благодарностью и может сэкономить мои волосы для некоторых будущих вызовов кодирования.
Спасибо