Задача следующая:
имеются чекбоксы, выводящиеся в цикле, в которых имя - масив,
<input type="checkbox" id="iddd" name="group[]" value="'.$row['ID'].'" />
в обработчике, foreach получает ключ-значение.
0=>68
1=>83 и т.д
Вот обработчик:
<?php include 'admin.php';
foreach($_POST['group'] as $key => $value) {
echo $key.'=>'.$value.'<br>';
echo 'Значение ( ID студента)'.$value.'<br>';
echo 'ID группы (селекта)'.$_POST['name_group'].'<br>';
$sql = "UPDATE `wp_users` SET `users_group` = '".$_POST['name_group']."' WHERE `ID` =".$value;
$insert = mysql_query($sql) or die(mysql_error());
if($insert){
echo 'OK!<br><br>';
} else {
echo 'ERROR<br><br>';
}
}
?>
При передаче обычным способом - всё выполняется нормально, а при передаче аяком выводит ошибку:
Warning: Invalid argument supplied for foreach() in /hsphere/local/home/almamater/almamater-lang.com/wp-admin/actions_stud_group.php on line 2
Задача: как аяксом передать массив для цикла ?!
Спустя 6 минут, 14 секунд (8.02.2011 - 23:17) waldicom написал(а):
Потому что в формате JSONнадо передавать
Спустя 4 минуты, 29 секунд (8.02.2011 - 23:21) RCuPeR написал(а):
А можешь точнее указать на это примере ?!
Погнал гуглить JSON, но это будет долго...
Погнал гуглить JSON, но это будет долго...
Спустя 1 минута (8.02.2011 - 23:22) waldicom написал(а):
Ссылкой на яндексе?
Спустя 9 минут, 54 секунды (8.02.2011 - 23:32) RCuPeR написал(а):
Нет, простым примером кода.
Спустя 1 час, 14 минут, 13 секунд (9.02.2011 - 00:46) RCuPeR написал(а):
waldicom, ну вот теперь давай по-теме:
В любом случае возвращает только 1-е значение.
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.json-2.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#button').click(function(){
var formData = {
"field1":$("#check").val()
};
//alert(toJSON($formData));
$.ajax({
url:'eba.php'
, type:'POST'
, data:'jsonData=' + $.toJSON(formData)
, success: function(res) {
alert(res);
}
});
return false;
});
});
</script>
<form id="target" >
<input type="checkbox" name="id[]" id="check" value="1">
<input type="checkbox" name="id[]" id="check" value="2">
<input type="checkbox" name="id[]" id="check" value="3">
<input type="checkbox" name="id[]" id="check" value="4">
<input type="button" id="button" value="Button"><br><br>
</form>
<?php
$data = json_decode($_POST['jsonData']);
$response = 'Retrieved parameters '.count($data).'<br>';
foreach ($data as $key=>$value) {
$response .= 'Parameters: '.$key.'; Keys: '.$value.'<br>';
}
echo $response;
?>
В любом случае возвращает только 1-е значение.
Retrieved parameters 1
Parameters: field1; Keys: 1
Спустя 2 минуты, 7 секунд (9.02.2011 - 00:48) waldicom написал(а):
Цитата (RCuPeR @ 8.02.2011 - 22:46) |
В любом случае возвращает только 1-е значение. |
Тогда у меня странный вопрос: а сколько ты посылаешь? (на самом деле это даже не вопрос, а попытка подтолкнуть тебя посмотреть, какие данные ты оправляешь в этой строке:
data:'jsonData=' + $.toJSON(formData)
)
Спустя 3 минуты, 51 секунда (9.02.2011 - 00:52) RCuPeR написал(а):
data:'jsonData=' + $.toJSON(formData)
Отправляю массив jsonData, который включает в себе преобразованные В JSON ($.toJSON) данные переменной formDat.
Может где-то не догоняю. Помоги, пожалуйста.
Спустя 4 минуты, 13 секунд (9.02.2011 - 00:56) waldicom написал(а):
Цитата (RCuPeR @ 8.02.2011 - 22:52) |
преобразованные В JSON ($.toJSON) данные переменной formDat. |
В formData у тебя что лежит (сколько значений)?
Спустя 2 минуты, 36 секунд (9.02.2011 - 00:59) RCuPeR написал(а):
"field1":$("#check").val()
Хм...Одно. А как...Как получить массив ?!
Нужно вытащить значение атрибута 'name' ???
"field1":$("#check").attr('name')
Спустя 4 минуты, 48 секунд (9.02.2011 - 01:04) RCuPeR написал(а):
В таком случае вернёт:
Retrieved parameters 1
Parameters: field1; Keys: id[]
Спустя 9 часов, 15 минут, 41 секунда (9.02.2011 - 10:19) RCuPeR написал(а):
NULL ??? Больше вариантов нету ?!
_____________
Гнусный социопат с комплексом Бога.