Так что я боролся с этим некоторое время и не могу понять это. У меня есть форма флажков, каждый с id = «athlete []» и class = «togglea». Вот пример нескольких моих флажков (у меня есть сотни)
<input type="checkbox" class="togglea" id="1" value="1" name="athlete[]" onchange="updateSum()">
<input type="checkbox" class="togglea" id="2" value="2" name="athlete[]" onchange="updateSum()">
<input type="checkbox" class="togglea" id="3" value="3" name="athlete[]" onchange="updateSum()">
<input type="checkbox" class="togglea" id="4" value="4" name="athlete[]" onchange="updateSum()">
<input type="checkbox" class="togglea" id="5" value="5" name="athlete[]" onchange="updateSum()">
У меня есть этот ajax скрипт для публикации массива флажков без обновления страницы:
$(document).ready(function(){
$('#submit').click(function(){
var athlete = [];
$('.togglea').each(function(){
if($(this).is(":checked"))
{
athlete.push($(this).val());
}
});
athlete = athlete.toString();
$.ajax({
url:"dataget.php",
method:"POST",
data:{athlete:athlete},
success:function(data){
$('#result').html(data);
}
});
});
});`
И тогда у меня есть сценарий PHP внутри набора данных. Файл php:
if(isset($_POST["athlete"]))
{
// Counting number of checked checkboxes.
$checked_count = $_POST['athlete'];
echo "You have selected ".$checked_count."";
foreach($checked_count as $selected) {
$sql = "SELECT * FROM olympics WHERE athlete_id = '$selected'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row["athlete_name"];
}
} else { echo "0 results"; }
}
}
Кажется, я не могу понять, почему в моем ForEach php l oop в наборе данных. php не будет работать. Если я удаляю для каждого l oop и меняю, например, athlete_id = '1' , он действительно получает данные от спортсмена # 1, поэтому я знаю, что он подключается к базе данных.
Надеюсь, вы, ребята, поможете мне понять это, потому что я не могу понять, почему мой Foreach l oop не будет циклически проходить и извлекать все данные.
PS $ Check_count вытягивает все выбранные данные в массив, разделенный запятыми, поэтому я ЗНАЮ, что я правильно поставил флажки.