За последние 24 часа нас посетили 15800 программистов и 1541 робот. Сейчас ищут 727 программистов ...

Сделать из php элемент div невидимым

Тема в разделе "PHP для новичков", создана пользователем mindblaster, 26 ноя 2013.

  1. mindblaster

    mindblaster Новичок

    С нами с:
    23 окт 2013
    Сообщения:
    19
    Симпатии:
    0
    Здравствуйте, у меня возникла проблема. У меня есть модальное окно, в нём есть форма отправки. Посетитель заполняет её и в случае, если данные заведены правильно, в модальном окне div элемент, в котором находится форма отправки, должна становиться невидимой и другой div элемент в этом же модальном окне должен появиться. Проверку данных я осуществил с помощью php и ajax. Но вот если данные были правильны, то как мне сделать так, что-бы один div исчез и следующий появился?

    Вот пример моего кода:
    Код (Text):
    1.  
    2. //проверка данных
    3. //добавление данных в базу данных
    4. if ($dataCorrect) {
    5.      //Направлено в модальное окно
    6.      echo "Your data is correct, it was succesfully added to the Databank!";
    7.      echo "<script type = 'text/javasript'>
    8.               document.getElementById("div1").style.display = "none";
    9.               document.getElementById("div2").style.display = "block";
    10.               </script>;
    11. }
    Этот код не работает, но если я добавляю в моё модальное окно дополнительную кнопку и значению onclick присваиваю тот же скрипт, то при нажатии её всё работает. Как мне сделать так, что-бы контейнеры исчезали и появлялись после проверки в php?
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Если ты говоришь про код который ты привел, то я согласен он с ошибкой. Открой свой код в нормальном редакторе и посмотри внимательно на кавычки.
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А ведь тут-то, сообразил верно:
    'text/javasript'
    Что помешало дальше соображать?)))
     
  4. mindblaster

    mindblaster Новичок

    С нами с:
    23 окт 2013
    Сообщения:
    19
    Симпатии:
    0
    Да не, там дело не в кавычках, я этот пример так написал... Нормальный код проверен в редакторе, там ошибок с кавычками нету. Вот более подробный пример, я и частично нашел ошибку, но не знаю пока как её решить. Изначально я думал, что причина в php, но потом понял, что причина лежит глубже.
    Код (Text):
    1.  
    2. <html>
    3. ....
    4. <head>
    5. <script type = "text/javascript"
    6.     function AddData(resuld_id, form_id, url) {
    7.         jQuery.ajax({
    8.             url: url;
    9.             type: "POST";
    10.             dataType: "html";
    11.             data: jQuery("#"+form_id).serialize(),
    12.             sucess: function(response) {
    13.                 document.getElementById(result_id).innerHTML = response;
    14.             },
    15.             error: function(response) {
    16.                 document.getElementById(result_id).innerHTML = "Error....";
    17.             }
    18.         });
    19.     }
    20. </head>
    21. <body>
    22.     <div id="modalWindow">
    23.         <div id="ErrorPrinting">
    24.             <--?Здесь выводятся ошибки-->
    25.         </div>
    26.         <div id="Datainput">
    27.             <form action = "" id = "datas" method = "post">
    28.                 <input>....
    29.                 <input>....
    30.                 <input type = "button" onClick="AddData('Errorprinting', 'DataInput', 'analyseData.php')"
    31.             </form>
    32.         </div>
    33.     </div>
    34. </body>
    35. </html>
    36.  
    37. //analyseData.php
    38. <?php
    39. .....
    40. if ($dataCorrect) {
    41.    
    42.     echo "<script type = 'text/javascript'
    43.         //Поскольку целевой контейнер функции AddData() контейнер ErrorPrinting,
    44.                 //контейнер Datainput не виден этому скрипту
    45.                     document.getElementById('Datainput').style.display = none;
    46.     </script>"
    47. } else {
    48.     //Ошибка выдаётся в поле "ErrorPrinting", но если я в это поле вставляю контейнер с формой
    49.         //и php скрипт её видит, то при выдаче ошибки он удаляет форму(Я так понял переписывая её) и выдаёт,
    50.         //то что стоит в echo  
    51.     echo "Error...."
    52. }
    53. ?>
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Постановка вопроса неправильная. Из php нельзя сделать div невидимым. Хотя вы и выводите javascript, который делает div невидимым. В Javascript ошибка:

    Код (Text):
    1.  
    2. echo "<script type = 'text/javascript'>
    3.       //Поскольку целевой контейнер функции AddData() контейнер ErrorPrinting,
    4.                 //контейнер Datainput не виден этому скрипту
    5.                     document.getElementById('Datainput).style.display = none;
    6.    </script>"
     
  6. mindblaster

    mindblaster Новичок

    С нами с:
    23 окт 2013
    Сообщения:
    19
    Симпатии:
    0
    Да, постановка вопроса и вправду неправильна.
    А в чём ошибка в javascript? Я просто целый день сижу над этой проблемой и тупо не могу придумать оптимальное решение :(
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну ту, что я заметил, там закрывающая ">" была пропущена. Дальше - посмотрите в консоли браузера. Я обычно javascript-ы в Chrome отлаживаю. Можно в FireBug
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    mkramer, Да, что вы заладили, нельзя, нельзя.
    Вот кокраз $dataCorrect и поможет вам скрыть див через php.
    Как полностью так и вовсе стилями.
     
  9. mindblaster

    mindblaster Новичок

    С нами с:
    23 окт 2013
    Сообщения:
    19
    Симпатии:
    0
    Всё, проблема решена. Я послал из php информацию типа JSON в виде пары (div, string). Ну а там уже потом подправил функцию addData().

    Всем спасибо за ответы.