Сбивается дизайн после отправки xmlhttprequest

cyberx

Новичок
Сбивается дизайн после отправки xmlhttprequest

ДОБРЫЙ ДЕНЬ! Создается проблема с дизайном при отправке xmlhttprequest, после него сбивается весь дизайн. Вот как у меня сделано

ajax.js

Код:
var req = Create(); function ge(id) {  return document.getElementById(id); }
 function Create(){  if(navigator.appName == "Microsoft Internet Explorer")
{  req = new ActiveXObject("Microsoft.XMLHTTP");  }
else{  req = new XMLHttpRequest();  }  return req;  }  function Request(request) 
{ req.open('post', 'Process.php' , true); req.onreadystatechange = Refresh; 
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); req.send(request);  } 
 function Refresh() 
{  if(req.readyState == 4)   ge('ajax').innerHTML = req.responseText;  
else   ge('ajax').innerHTML = '<img src="Graphic/images/request.gif" />'; } 
function ajaxFunction()  {   var process = encodeURIComponent(document.getElementById('process').value); 
var query = encodeURIComponent(document.getElementById('query').value); 
 var request = 'process='+process+'&query='+query;  Request(request)  }
PHP:
<script type="text/javascript" src="ajax.js"></script>  
<?php  if (isset($_POST['query'])) { echo "true"; } 
else { ?><div id="ajax"> <form name="myform" id="myform">    
 <input name="process" id="process" value="Friends" type="hidden" />    
  <input name="query" id="query" value="2" type="hidden" />   
  <input type="button" value="send" onclick="ajaxFunction();" /> </form> </div> <?php }  ?>
После отправки просмотрел код страницы и вот как она выглядела

Код:
<div id="ajax"><script type="text/javascript" src="ajax.js"></script>  true  </div>
Почему то div ajax становится перед этим js кодом. Не можете исправить эту ошибку?
 

tvolf

Новичок
Re: Сбивается дизайн после отправки xmlhttprequest

Автор оригинала: cyberx
ДОБРЫЙ ДЕНЬ! Создается проблема с дизайном при отправке xmlhttprequest, после него сбивается весь дизайн. Вот как у меня сделано
[...]

PHP:
<script type="text/javascript" src="ajax.js"></script>  
<?php  if (isset($_POST['query'])) { echo "true"; } 
else { ?><div id="ajax"> <form name="myform" id="myform">    
 <input name="process" id="process" value="Friends" type="hidden" />    
  <input name="query" id="query" value="2" type="hidden" />   
  <input type="button" value="send" onclick="ajaxFunction();" /> </form> </div> <?php }  ?>
После отправки просмотрел код страницы и вот как она выглядела
Код:
<div id="ajax"><script type="text/javascript" src="ajax.js"></script>  true  </div>
Почему то div ajax становится перед этим js кодом. Не можете исправить эту ошибку?
У тебя скрипт process.php формирует первоначальную страницу, а затем он же вызывается
из Ajax.js, я правильно понимаю ? Если так, то при выполнении Ajax-запроса выдача скрипта
(при получении параметра $_POST['query']) будет состоять из
========
"<script type="text/javascript" src="ajax.js"></script> true",
========
что и будет включено внутрь тэга c id='ajax'. То есть, то, что ты и привел в своем сообщении.

Если же тебе нужно, чтобы в ответе строка "<script type='...'> </script>" отсутствовала (то есть,
внутри div'а с id='ajax' было только слово "true"), просто внеси выражение "<script...></script>"
внутрь ветки "else {". В этом случае при первоначальном формировании кода html-страницы
текст скрипта будет включен в тело страницы, а при ajax-запросе на выход будет идти одно только
слово "true".

Вроде бы так, если я, конечно, правильно понял вопрос :)
 

cyberx

Новичок
Я исправил ошибку, просто в div="ajax" вставил всю страницу, а не только форму и все заработало
 
Сверху