JQuery Ajax JSon установить значение из базы данных на основе условия в цикле

У меня есть JQuery JSON для получения данных из базы данных.

var list = ["Imsak", "Subuh", "Terbit", "Dhuhur", "Ashar", "Maghrib", "Isya"];

geo = [jsonStr.longitude, jsonStr.latitude, jsonStr.altitude];
timezone = jsonStr.timezone;

prayTimes.tune({ imsak: 2, subuh: 2, terbit: -2, dhuhur: 121, ashar: 2, maghrib: 2, isya: 2 });

var date = new Date(); // today
prayTimes.setMethod(jsonStr.calculationMethod);
var times = prayTimes.getTimes(date, geo, timezone);

$.ajax(
{
url: "chk",
type: "POST",
data:
{
},
dataType: "JSON",
success: function (jsonStr)
{
var sholatNameLen = jsonStr.sholatName.length;
for(var i=0; i<sholatNameLen; i++)
{
var sholatName = jsonStr.sholatName[i];

if(jsonStr.time10 == times[list[i].toLowerCase()] + ":00")
{
if(list[i] == sholatName)
{
alert(jsonStr.audio_before_adzan);
}
}
}
}
});

На моем столе у ​​меня есть данные

sholat_name  | audio_before_adzan | iqamah
Subuh        | Alfatihah.mp3      | 10
Dhuhur       | Al-Baqarah.mp3     | 10

На моем PHP jSon

$time10 = date("H:i:s", strtotime('+ 10 minutes'));
$qAdzanIqomah = mysqli_query($con, "SELECT * FROM tb_sholat WHERE active = 'Y'");
while($dAdzanIqomah = mysqli_fetch_array($qAdzanIqomah))
{
$sholatName[] = $dAdzanIqomah['sholat_name'];
$iqamah[] = $dAdzanIqomah['iqamah'];
$audio_before_adzan[] = $dAdzanIqomah['audio_before_adzan'];
}

$data = array(
"audio_before_adzan"     => $audio_before_adzan,
'time10' => $time10
);

echo json_encode($data);

Что я хочу, это когда if(jsonStr.time10 == times[list[i].toLowerCase()] + ":00") true, тогда получите audio_before_adzan на основе sholatName.

Я попробовал приведенный выше код, но эта функция if(list[i] == sholatName) это не правильно, может быть.

2

Решение

Я думаю, вы просто испортили свои петли. Вы, кажется, используете одну и ту же переменную i для 2 разных петель. Вы должны разделить циклы, чтобы это было полезно:

Код ниже является только частью в success-функции:

var sholatNameLen = jsonStr.sholatName.length;
for(var i=0; i<sholatNameLen; i++)
{
var sholatName = jsonStr.sholatName[i];
for (var j = 0; j < list.lenght; j++) {
if(jsonStr.time10 == times[list[j].toLowerCase()] + ":00")
{

if(list[j] == sholatName)
{
alert(jsonStr.audio_before_adzan[i]);
}
}
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector