Witam.
Otóż chcę porównać wartość znajdującą się w polu select z wartością z bazy. Jeśli wartość z tablicy (wyciągnięta z bazy) istnieje to ma w tym miejscu nie wyświetlać wartości. Sposób działa jeśli przy sprawdzania podam index tablicy do porównania. Podejrzewam, że problem leży w pętli która wykonuję się określoną liczbę razy. Tablica ma np.3 wyniki więc wywala błędem.
W skrócie jeśli mam wartość w select "12:00 - 13:00" i ta sama wartość jest w bazie ma wyświetlić "rezerwacja". Jeśli ta wartość jest w selctcie to ma wyświetlić tą wartość. Działa ale tylko podczas podaniu indexu tablicy tj. arr[0], arr[1]
kod:
<select class="ajax-select" name="ajaxselect" id="ajax-select">
<?php
$start = 12;
$end = 24;
$counter = 1;
$countArr = 0;
?>
<?php
foreach ($this->rezerwacje as $rezerwacja)
{
$data = $rezerwacja->data;
$godzina = $rezerwacja->godz;
$arr[] = $godzina;
}
$uniqueArr = array_unique($arr);
for($start; $start<= $end-1.5; $start+=1.5)
{
$counter ++;
$str = str_replace(".5", ":30", $start);
$rightHour = $start + 1.5;
$replaceRightHour = str_replace(".5", ":30", $rightHour);
$arr = array();
?>
<option value="">
<?php
if($counter%2 === 0)
{
if($uniqueArr[0] == $str.":00 - ".$replaceRightHour)
{
echo "rezerwacja";
}else
{
echo $str.":00 - ".$replaceRightHour;
}
}
else
{
if($uniqueArr[2] == $str." - ".$replaceRightHour.":00")
{
echo "rezerwacja";
}else
{
echo $str." - ".$replaceRightHour.":00";
}
}
$countArr ++;
?>
</option>
<?php
}
?>
</select>
Ma ktoś pomysł? Pętla for zawsze się wykona tą określoną liczbę razy, żeby wylistować godziny jeśli nie ma w bazie. Jeśli godzina jest w bazie, select ma tej określonej wartości nie wyświetlić.