Вы не можете принимать значения из элементов DOM, которые динамически устанавливаются Javascript. Вам нужно будет использовать комбинацию jQuery + AJAX + PHP.
Я сделаю несколько предположений:
- Ваш PHP-файл называется "process.php"
- Ваш HTML-документ (в котором содержится
<span class="timezone"></span>
) называется form.php
- Несмотря на то, что я не фанат включения jQuery / Javascript в form.php, для простоты этого ответа я все равно включу его.
- Часовой пояс, установленный Javascript, соответствует обычному формату: http://php.net/manual/en/timezones.php
В этом случае, пожалуйста, попробуйте следующее:
ШАГ ПЕРВЫЙ:
Если он еще не включен, включите jQuery в заголовок form.php. Вы можете скопировать / вставить это в заголовок form.php:
<script
src="https://code.jquery.com/jquery-3.3.1.js"
integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
crossorigin="anonymous"></script>
ШАГ ВТОРОЙ
Включите в ТЕЛО вашего документа следующее, но прямо перед закрывающим тегом </body>
:
<script>
$(document).ready(function() {
"use strict";
var TimeZone = ($(".timezone").html());
$.ajax({
type: "post",
dataType: "html",
url: "process.php",
data: {Purpose : "CallFunction", Function: "res_openandclose", TimeZone : TimeZone},
success: function (response)
{
alert(response); //will alert either "open" or "closed"
}
});
});//end function
</script>
ТРЕТИЙ ШАГ
Измените ваш process.php, чтобы отразить следующее
//Receive Parameters from AJAX for Function Calls
if(isset($_POST["Purpose"]) && $_POST["Purpose"] === "CallFunction") {
if(isset($_POST["Function"]) && $_POST["Function"] === "res_openandclose") {
res_openandclose($res_id,$time_open,$time_close);
}//end if
}//end if
public function res_openandclose($res_id,$time_open,$time_close)
{
if(isset($_POST["TimeZone"]) {
$timezone = $_POST["TimeZone"];
$db=getDB();
date_default_timezone_set($timezone);
$stmt = $db->prepare("SELECT * FROM fooddelivery_restaurant WHERE id=:res_id AND CURTIME() >= :open_time and CURTIME() <= :close_time ");
$stmt->bindParam("res_id", $res_id, PDO::PARAM_STR);
$stmt->bindParam("open_time", $time_open, PDO::PARAM_STR);
$stmt->bindParam("close_time", $time_close, PDO::PARAM_STR);
$stmt->execute();
$count = $stmt->rowCount();
if($count)
{
return "open";
}
else
{
return "closed";
}
}
Сохраните все файлы и запустите скрипт.