как настроить маржу сессионной вспышки в php? - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь прошить сообщение об успехе, когда хранилище данных успешно. Мой код базы данных и все остальное работает нормально, но когда я даю сообщение об успехе $ _SESSION, оно всегда попадает под навигацию.

1) Я хочу знать, есть ли в php какой-либо способ установить поле $ _SESSION ['success_flash'] сообщение 2) есть ли способ типа / n / n, чтобы мое флэш-сообщение показывало две строки ниже 3)

Мой реальный код:

$_SESSION['success_flash'] = '\n\n<span style="color:#FFFFFF;text-align:center;">Data Saved Successfully!</span>';

Я пытался /н / п, но не работает:

$_SESSION['success_flash'] = '\n\n<span style="color:#FFFFFF;text-align:center;">Data Saved Successfully!</span>';

Я попробовал style = "margin-top: 200px;"но не работает:

$_SESSION['success_flash'] = '<span style="margin-top:200px;color:#FFFFFF;text-align:center;">Data Saved Successfully!</span>';

Пожалуйста, проверьте изображение ниже, только зеленый фон отображается под панелью навигации и текстовое сообщение "Данные успешно сохранены!"не отображается, потому что он скрыт под навигацией.

enter image description here

Еще одна вещь, которую я использую ниже код после флэш-сообщения и мой код заканчивается.

echo "<script type='text/javascript'> document.location = 'index.php'; </script>";

Любая идея или предложение будут полезны. Спасибо.

Я получаю данные и успешно передаю их в базу данных. Я просто хочу перезагрузить свою страницу после вызова php и показать пользователю sucess flash.

Мой вызов Ajax: вверху моя страница php.

<script>
function createD () {

var data = {
     'name'              : jQuery('#name').val(),
     'phone'             : jQuery('#phone').val(),
   };  

 //Ajax call Start Here
 jQuery.ajax({
   url : '/mycodpage/includes/codfile/product.php',
   method : 'POST',
   data : data,
   success : function(data){

     if (data != 'passed') {
       // This will show error
       jQuery('#modal_errors_1').html(data);
     }

     if (data == 'passed') {
       //clear the errors if any
       jQuery('#modal_errors_1').html("");
       location.reload();
     }
   },
   error : function (){alert("Something went wrong.");},


 });     //Ajax call End Here

  }

} // Function End

</script>

Ответы [ 3 ]

0 голосов
/ 18 октября 2019

Добавить отображение: inline-block;или дисплей: блок;в стилях промежутка.

Пока поведение элементов dom может зависеть от внешних объектов dom (и вы их не определяете): если это все еще не работает, попробуйте использовать padding вместо margin, если это все ещене работает разместить два тега span один внутри другого и оба с помощью inline-block.

Все эти вещи, использующие $ _SESSION, довольно странные, однако XD ... но из вашего описания я предполагаю, что он уже показывает span,но без поля ... но вы не должны использовать $ _SESSION таким образом.

0 голосов
/ 18 октября 2019

Хорошо, теперь мы куда-то добираемся. Но теперь location.reload не нужен, потому что если вы получите «пропущенный» ответ, вы можете установить связь без перезагрузки (и без использования какого-либо кода в переменной сеанса, избавьтесь от $ _SESSION ['success_flash']), как показано ниже.

Обратите внимание, что я не знаю, каков класс CSS или идентификатор вашего зеленого DIV (если есть), поэтому для этого конкретного примера я предполагаю, что у него есть класс ".msg-response"

<script>
function createD () {

var data = {
     'name'              : jQuery('#name').val(),
     'phone'             : jQuery('#phone').val(),
   };  

 //Ajax call Start Here
 jQuery.ajax({
   url : '/mycodpage/includes/codfile/product.php',
   method : 'POST',
   data : data,
   success : function(data){

     if (data != 'passed') {
       // This will show error
       jQuery('#modal_errors_1').html(data);
     }

     if (data == 'passed') {
       //clear the errors if any
       jQuery('#modal_errors_1').html("");

       // this new line will change the content of your message div
       $('div.msg-response').html('<span style="margin-top:200px;color:#FFFFFF;text-align:center;">Data Saved Successfully!</span>');

     }
   },
   error : function (){alert("Something went wrong.");},


 });     //Ajax call End Here

  }

} // Function End

</script>

здесь также существует угроза безопасности: «if (data! = 'Пройдено')» - вы будете отображать ошибки PHP (путь, имя файла, переменные, класс, строка кода и т. Д.), Когда что-то не является предикторомпроизойдет, если вы не отключите display_errors на вашем сервере (ошибки отображения должны быть включены только в режиме разработки, это хорошая практика).

Чтобы избежать этого, вы можете использовать здесь ответ JSON, обработать статус «ошибка», «успех» и ничего не делать, если ответ JSON отличается от «успех» или «ошибка».

0 голосов
/ 18 октября 2019

PHP после загрузки не меняется на странице, он не динамический. То, как вы это делаете, довольно странно, но может быть достигнуто, если вы установите $ _SESSION ['success_flash'] сразу после сохранения данных в базе данных и перезапустите страницу.

На мой взгляд, лучшийздесь можно использовать ajax, и ответ ajax может изменить контейнер в меню на «success».

Но я не знаю, как вы отправляете свои данные, это форма POST или что-то?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...