У меня есть приложение 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=''>






Вам действительно нужно получить Firefox / Firebug, чтобы помочь отладить это. Возможно, из-за ошибки вашего скрипта страница перестает загружаться, и поэтому ваше изображение не отображается.
Если вы передадите этот ответ через Ajax, используя подстановку innerHTML, он не сработает. Вам нужно разобрать <script>...</script> в обратном вызове и eval() его.
И вообще, вы должны использовать приличную PHP-фреймворк на стороне сервера и библиотеку Javascript на стороне клиента. В противном случае вы скоро начнете переписывать свою программу с нуля, чтобы очистить ее, просто чтобы обнаружить, что она вряд ли лучше.
Ваш 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, а не внутри тега стиля.
html создается из php, хотя ... в чем проблема в php?
Проблема, вероятно, вызвана HTML в вашем файле PHP
На данный момент у меня нет доступа к firebug, и, учитывая то, что я опубликовал, ошибка, похоже, больше связана с php? Когда я вызываю страницу отдельно, в браузере не сообщается об ошибке сценария.