У меня есть 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)
это не правильно, может быть.
Я думаю, вы просто испортили свои петли. Вы, кажется, используете одну и ту же переменную 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]);
}
}
}
}
Других решений пока нет …