Html head js файлы не применяются к модальным окнам динамической загрузки

У меня есть несколько файлов php, которые разделены на части, например, tillbody.php имеет тег html до тега body, затем у меня есть navbar.php и так далее. Я включаю его в index.php для лучшего обзора, вот код.

<?php
include ('pages/tillBody.php');
include ('pages/navbar.php');
// Set the default name 
$ac = 'default.php'; 
// Specify some disallowed paths 
$disallowed_paths = array('tillBody', 'navbar', 'footer');
if (empty($_GET['ac'])){
$_SESSION["loggedin"] = false;
unset ($_SESSION['userstatus']);
unset ($_SESSION['loggedin']);
unset ($_SESSION["userfn"]);
unset ($_SESSION["userln"]);
unset ($_SESSION["useremail"]);
unset ($_SESSION["id"]);
session_unset();
session_destroy();
}
if (!empty($_GET['ac'])) {
    $q = basename($_GET['ac']); 
    // If it's not a disallowed path, and if the file exists, update $action
    if (!in_array($q, $disallowed_paths) && file_exists("pages/{$q}.php"))
    {
        $ac = $q.".php";
    }
}
// Include $action 
include("pages/$ac"); 

include("pages/footer.php");
?>

TillBody.php имеет все файлы js, включая проверку. и ac - параметр запроса, я постоянно меняю его, но весь нижний колонтитул верхнего колонтитула и другие страницы php остаются такими же. Проблема в том, что на некоторых страницах есть модальные окна начальной загрузки, которые поступают с сервера через ajax с использованием эхо, когда эти модальные окна рендерит, эти файлы js не влияют на него, потому что тилбоди загружается, когда сайт открывается, а проверка не видит модальный ввод, поэтому проверка не выполняется для проверки модальных окон . Я знаю, что для решения этой проблемы мне нужно снова перезагрузить головную часть. может кто-нибудь помочь мне, как я могу решить эту проблему. Допустим, пользователь нажимает кнопку, и эта кнопка вызывает ajax, а ajax вызывает модальную страницу php, и эта страница php имеет это модальное окно.

<?php
if (!empty($_POST['id'])){
    $id = $_POST['id'];
    // connection to the Ddatabase
    $servername = "*******";
    $username = "*******";
    try {
    $db = new PDO("mysql:host=$servername;dbname=******", $username, "********");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $id = trim($id);
    $id = stripslashes($id);
    $id = htmlspecialchars($id);
    $id = (int)$id;
    $query = "SELECT dou.businessName, dou.businessAddress, wp.discount, wp.dealitem, wp.expirydate, 
    wp.description, m.* FROM dineOwnerUser AS dou INNER JOIN webpromo AS wp ON dou.id = wp.ownerid 
    INNER JOIN menu AS m ON dou.id = m.ownerid
    WHERE dou.id = ?";

    $statement = $db->prepare($query);
    $statement->execute(array($id));
    $result = $statement->fetch(PDO::FETCH_ASSOC);
    echo"<div class='modal-header'>";
    echo"<button type='button' class='close' data-dismiss='modal'>&times;</button>";
    echo"<h2 class='modal-title text-center' style='color:#8f0000d6'>Report to ".$result['businessAddress']."</h2>";
    echo"</div>";
    echo"<div class='modal-body'>";
    echo"<div class='alert alert-danger hidden' id='robotError'></div>";
    echo"<div class='alert alert-success hidden' id='success'></div>";
    echo"<form id='complaintForm'>";
        echo"<div class='form-group'>";
            echo"<label class='control-label' for='complaintAbout'>Report / Complaint about* :</label>";
            echo"<input type='text' class='form-control' id='complaintAbout' placeholder='Report / Complaint about' name='complaintAbout'>";
            echo"<div class='alert alert-danger hidden' id='complaintAbouterrbox'></div>";
        echo"</div>";
        echo"<div class='form-group'>";
            echo"<label class='control-label' for='complaintDetail'>Report / Complaint detail* :</label>";
            echo"<textarea type='text' rows='5' class='form-control' id='complaintDetail' placeholder='Report / Complaint detail' name='complaintDetail'></textarea>";
            echo"<div class='alert alert-danger hidden' id='complaintDetailerrbox'></div>";
        echo"</div>";
        echo"<div class='form-group'>";
            echo"<label class='control-label' for='complainerEmail'>Your email id* :</label>";
            echo"<input type='email' class='form-control' id='complainerEmail' placeholder='Your email id' name='complainerEmail'>";
            echo"<div class='alert alert-danger hidden' id='complainerEmailerrbox'></div>";
        echo"</div>";
        echo"<div class='form-group'>";
            echo"<div class='g-recaptcha' data-sitekey='6LdZU0QUAAAAABUUQVjOQLbRy6DVMP0kZuOPjg8B'></div>";
        echo"</div>";
        echo"<button type='button' id='complaintsubmit' class='btn btn-primary btn-block'>Submit <span id= $id></span></button>";
    echo"</form>";
    echo"</div>";
    echo"<div class='modal-footer'>";
    echo"<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>";
    echo"</div>";
}
    catch(PDOException $e)
    {
        echo "Connection failed: " . $e->getMessage();
    }
$db = null;
exit;
}
?>

снова я повторяю, пожалуйста, помогите мне. Эти модальные окна поступают с сервера после загрузки тега заголовка, поэтому код проверки не видит поле ввода, поэтому, когда эти модальные окна отображают, сценарий проверки не проверяет это. Я использую $ (

document ).ready(function() {
    validation code;
});//this works for other pages which are already present in DOM when body loads but other pages which comes later from server it does not validate.

можно часть validation code; показать?

kuromoka 29.09.2018 08:43

Спасибо, что ответили мне @kuromoka, здесь я даю вам ссылку на свой предыдущий вопрос, в конце вопроса вы можете найти код проверки, но я использую тот же код. stackoverflow.com/questions/52490500/…

haider 29.09.2018 10:49

Изменится ли ваш результат, если вы попробуете такой код? $(document).on("keyup", "#complaintAbout", function(){

kuromoka 29.09.2018 12:08

@kuromoka большое спасибо, теперь он отлично работает, большое спасибо. еще один вопрос, который у меня есть. У меня есть ссылка google recaptcha js в том же разделе заголовка, и у меня это тоже в модальном режиме, возникает такая же проблема, поэтому для ее решения я поставил этот <script async src = "googletagmanager.com/gtag/js?id=UA- *******"> </script>. внутри модального, но это не подходящее решение. Можете ли вы сказать мне, как я могу перезагрузить этот js-скрипт, когда модальный запуск через ajax со страницы php?

haider 30.09.2018 00:27

вы можете поставить ответ как ответ, я проверю его как ответ, и вы получите очки :)

haider 30.09.2018 00:28

Я только что поставил ответ как ответ!

kuromoka 30.09.2018 01:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы прикрепить динамические модальные окна начальной загрузки, вы можете использовать .on().
Этот метод может присоединять к DOM события, добавленные после загрузки страницы. http://api.jquery.com/on/

На основе это ваши коды вы можете получить ожидаемые результаты, как показано ниже.

$(document).on("keyup", "#complaintAbout", function(){
    // validation code;
});

Другие вопросы по теме