Изменить свойство CSS с помощью PHP - PullRequest
4 голосов
/ 04 мая 2011

У меня есть форма, которая отправляет через JQuery AJAX для себя.Я хочу изменить отображение сообщения об ошибке «#error» с «none» на «block» в случае ошибки.

<?php
 $username = "username";
 $password = "password";
 if ($_POST['username'] != $username || $_POST['password'] != $password) {
 /*need to make change here*/
 ?>

/ * Форма входа * / / целевая страница после входа в системув / и функции отправки

<script type="text/javascript">
$(function() {          
        $("#MHLogin").validate({
            errorPlacement: function(error,element) {
                   return true;
                },

            submitHandler: function(form) {
                $("#processing").show();
                form.submit();
                return false;

           },
            rules: {
                    username: {
                        required: true
                    },
                    password: {
                        required: true
                    }
            }
        });
    });
</script>

По сути, сначала отображается форма входа в систему, при правильном входе в систему отображается содержимое.Если вы нажмете «Отправить», не указав в полях ничего, текстовые входы получат класс ошибки - эта часть работает.Но если вы отправите пустую или неправильную форму, форма просто очищается.Я попытался повторить «Ошибка» в первой части, если это неверно, затем использовать обработчик успеха, основанный на возвращенном значении - и изменить отображение - но когда я добавляю эхо «Ошибка»;он просто печатает «Ошибка» в верхней части страницы.

thx!

1 Ответ

2 голосов
/ 04 мая 2011

В вашем PHP-коде установите переменную следующим образом:

<?php
$state = 'block';
?>
<html>
    <script>
        var state = "<?=$state?>";
    </script>
</html>

По сути, вы выводите переменную PHP в свой файл, а затем используете глобальную переменную javascript для хранения значения этой переменной.В вашем коде Jquery вы сможете прочитать эту переменную.

Я использую более модульную версию этого в моей среде, где мой движок рендеринга может контролировать, какой файл CSS или JS загрузить.Есть также глобальный объект javascript, сгенерированный моим сценарием, который содержит все глобальные данные, такие как базовый URL, часовой пояс сервера, данные синхронизации и т. Д., Который должен быть повторно использован во всех клиентских сценариях.

Надеюсь, это поможет.

ОБНОВЛЕНИЕ:

Вот как это работает:

// In your html file 
<script>var a = '<?=$state?>';</script> <-- set the global var here
<script src="js/bar.js"></script>       <-- include your scripts after the global one

--------------------------------------------------------

// In your bar.js file 
alert(a)  // should show the contents of $state stored in the global var a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...