Нет изображения и нет всплывающего окна - PullRequest
0 голосов
/ 03 декабря 2008

У меня есть ajax-приложение, которое не будет отображать изображение или создать всплывающее окно из html-файла, сохраненного в файле.

Это код, который я использую для всплывающего окна:

echo '<script> 
function makewindows(){
child1 = window.open ("about:blank");
child1.document.write(' . json_encode($row2["ARTICLE_DESC"]) . ');
child1.document.close(); 
}
</script>';

И полученный HTML

<script> 
function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<!-- +++++++++++++++++++++++++ Bitte \u00e4ndern Sie im eigenen Interesse nichts an diesem Code! ++++++++++++++++++++++++ -->\n<!-- +++++++++++++++++++++++++ Das kann massive Fehldarstellungen ihrer Auktion zur Folge haben! +++++++++++++++++++ -->\n<!-- +++++++++++++++++++++++++ ++++++++++++++++++++++++++ Ihr Supreme Team +++++++++++++++++++++++++++++++++++++++++ -->\n");
child1.document.close(); 
}
</script><br />
<b>Notice</b>:  Undefined index:  CATEGORY in <b>C:\Programme\EasyPHP 2.0b1\www\get_auction.php</b> on line <b>39</b><br />
<div id='leftlayer'>
    <strong>Article Number</strong> 220288560247
    <p><strong>Article Name</strong></p> Ed Hardy Herren Shirt Rock & Roll Weiss XXL Neu & OVP
    <p><strong>Subtitle</strong></p> 
    <p><strong>Username</strong></p> fashionticker1
    <p><strong>Total Selling</strong></p> 1
    <p><strong>Total Sold</strong></p> 0
    <p><strong>Category</strong></p> 
    <p><strong>Highest Bidder</strong></p> 0
  </div>
<div class='leftlayer2'>
  <strong>Current Bid</strong> 0.00
  <p><strong>Start Price</strong></p> 49.00
  <p><strong>Buyitnow Price</strong></p> 59.00
  <p><strong>Bid Count</strong></p> 0
  <p><strong>Start Date</strong></p> 1.10.2008 16:22:09
  <p><strong>End Date</strong></p> 6.10.2008 16:22:09
  <p><strong>Original End</strong></p> 6.10.2008 16:22:09
  <p><strong>Auction Type</strong></p> 1
</div>
<div class='leftlayer2'>
    <strong>Private Auction</strong></p> 0
  <p><strong>Paypal Accepted</strong></p> 0
  <p><strong>Auction Watched</strong></p> 0
  <p><strong>Finished</strong></p> 1
  <p><strong>Country</strong></p> 
<br>
<br>
<style ty
  <p><strong>Location</strong></p> float: right;

  <p><strong>Conditions</strong></p> margin: 0px;

</div>
<div class='leftlayer2'>
  <strong>Auction Revised</strong></p> 0
  <p><strong>Cancelled</strong></p> 0
  <p><strong>Shipping to</strong></p> padding:5px; 

  <p><strong>Fee Insertion</strong></p> 0.00
  <p><strong>Fee Final</strong></p> 0.00
  <p><strong>Fee Listing</strong></p> 0.00
  <p><a href='#' onclick='makewindows(); return false;'>Click for full description </a></p>
</div><div id='rightlayer'>Picture Picture
<img src=http://storage.supremeauction.com/flash/ebay2/10/49/76/10497654/13895964e.jpg>
</div>

img src является допустимым местоположением и нормально открывается в браузере, но не будет отображаться на странице. Я получаю сообщение об ошибке сценария, в котором не указаны никакие детали.

edit: При вызове файла отдельно, а не как часть приложения, полученный html-файл генерирует ссылку, которая создает всплывающее окно, но источник показывает, что для окна ничего не назначено:

child1.document.write("");

Я внес изменения в строку img src:

<img src='".$lastImg."'>

В результате возвращается html:

<img src=''>

Ответы [ 3 ]

1 голос
/ 03 декабря 2008

Ваш HTML выглядит недействительным - у вас есть:

<style ty
  <p><strong>Location</strong></p> float: right;

  <p><strong>Conditions</strong></p> margin: 0px;

Во-первых, тег <style> не закрыт (1. открывающий тег даже не завершен и 2. у вас нет закрывающего тега) - когда я смотрю на HTML с помощью Firefox / Firebug, он обрабатывает Остальная часть HTML находится внутри этого тега и поэтому не отображается.

Также у вас есть объявления стилей, такие как float: right;, смешанные внутри HTML, а не внутри тега стиля.

1 голос
/ 03 декабря 2008

Вам действительно нужно получить Firefox / Firebug, чтобы помочь отладить это. Возможно, из-за ошибки вашего скрипта страница перестала загружаться, и, следовательно, ваше изображение не отображается.

0 голосов
/ 03 декабря 2008

Если вы передадите этот ответ через Ajax, используя подстановку innerHTML, он не будет работать. Вам нужно проанализировать <script>...</script> в обратном вызове и eval() it.

И вообще, вы должны использовать какую-то приличную среду PHP на стороне сервера и библиотеку Javascript на стороне клиента. В противном случае вы скоро начнете переписывать программу с нуля, чтобы очистить ее, просто чтобы убедиться, что она едва ли лучше.

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