Файлы js html head не применяются к динамическим модалам начальной загрузки - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть несколько файлов 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, используя echo , когда эти модальные рендеринг отображают эти js-файлы, не влияет на него, потому что tillBody загружается, когда сайт открывается, и проверка не видит входные данные модала, поэтомувалидация не пройдена для валидации модальностей.Я знаю, чтобы решить эту проблему, мне нужно перезагрузить головной раздел снова.Может ли кто-нибудь помочь мне, как я могу решить эту проблему.Допустим, пользователь нажимает кнопку, и эта кнопка вызывает 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;
}
?>

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

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.

1 Ответ

0 голосов
/ 30 сентября 2018

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

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

$(document).on("keyup", "#complaintAbout", function(){
    // validation code;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...