Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как передать значение из php в html через js (https://javascript.ru/forum/jquery/34253-kak-peredat-znachenie-iz-php-v-html-cherez-js.html)

Mateus 26.12.2012 16:52

Как передать значение из php в html через js
 
Доброго времени суток.
Как можно передать сообщение об ошибке из обработчика php на страницу использую javascript.
<div id="errors" class="error"></div>
<form action="handler.php" target="rFrame" method="POST"  
   enctype="multipart/form-data">  
<input class="text" name="title" id="title">


Далее в handler.php вытаскиваю все необходимы значения и обрабатываю. К примеру, $title = $_POST['title'];
if (empty($title)) {
...
То необходимо вывести ошибку
$('#errors').empty(),
$('#errors').append('Please check <b>Title*</b> field'),

}

Mateus 26.12.2012 16:57

Или проще использовать ajax запрос и функцию success?

Deff 26.12.2012 17:00

http://jquery-docs.ru/Ajax/ajaxError/#callback

Mateus 26.12.2012 17:04

Если использовать ajax, то как "выбрать" всю необходимую информацию для загрузки файла из формы:
<input type="file" name="loadfile">

Deff 26.12.2012 18:53

Mateus,
Для файлов имхо геморройно сделать aякс запрос кроссбраузерно
поэтому проще отправлять форму и возвращать ошибку во фрейме,
используя target в форме
<form target="Имя фрейма" ....

DjDiablo 26.12.2012 22:24

ну если запрос не аяксовы й. то данные передать можно в DOM
//можешь сделать для errorBlock display:hidden если нехочешь чтобы он отображался
// так как $error это массив, то в него может засовывать множество ошибок а не только одну.
// возможно будет удобно иметь массив ошибок в суперглобальной области видимости, дабы собирать ошибки отовсюду

<? 
   $errors=Array();
   $title = $_POST['title'];
   if (empty($title)) {?>
      $errors[]="Совсем нехорошо, пользователя забыла указать тайтл. Это ошибка однако";
   <?}
?>
<!-- бла бла бла какойто html --!>  

<!-- в этом блоке отрендерим все накопленные ошибки(блок надо расположить в конце сгенерированной страницы) -->
<div class="errorBloc">
      <? 
          foreach ($errors as $item){
              echo "<div class='error' >".$item."</div>" ;
          }
     ?>
</div>

<script>
//ну и тут мона чонибудь с инфой об ошибке сделать однако
      jQuery(function($){
           $(".error").each(function(){    
               alert( $(this).html() ) ;
           })
     });
</script>


Часовой пояс GMT +3, время: 09:10.