English 中文(简体)
使用JavaScript输出HTML时出现错误。
原标题:
  • 时间:2008-12-01 11:08:57
  •  标签:

我有这样的php代码,我试图生成一个弹出窗口,其中包含一个html文件的内容,但是在添加脚本标记后,没有显示任何html。我尝试回显$ row2,但是单词数组会打印到屏幕上,没有其他。

<?php
session_start();
if (isset($_GET["cmd"]))
  $cmd = $_GET["cmd"];
else
  die("You should have a  cmd  parameter in your URL");
 $pk = $_GET["pk"];
$con = mysql_connect("localhost","root","geheim");
if(!$con)
{
die( Connection failed because of  .mysql_error());
}
mysql_select_db("ebay",$con);
if($cmd=="GetAuctionData")
{
$sql="SELECT * FROM Auctions WHERE ARTICLE_NO = $pk ";
$sql2="SELECT ARTICLE_DESC FROM Auctions WHERE ARTICLE_NO = $pk ";
$htmlset = mysql_query($sql2);
$row2 = mysql_fetch_array($htmlset);
echo $row2;
echo  <script> 
function makewindows(){
child1 = window.open ("about:blank");
child1.document.write( .$row2["ARTICLE_DESC"]. );
child1.document.close(); 
}
</script> ;

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
echo "<div id= leftlayer >
    <strong>Article Number</strong> ".$row[ ARTICLE_NO ]."
    <p><strong>Article Name</strong></p> ".$row[ ARTICLE_NAME ]."
    <p><strong>Subtitle</strong></p> ".$row[ SUBTITLE ]."
    <p><strong>Username</strong></p> ".$row[ USERNAME ]."
    <p><strong>Total Selling</strong></p> ".$row[ QUANT_TOTAL ]."
    <p><strong>Total Sold</strong></p> ".$row[ QUANT_SOLD ]."
    <p><strong>Category</strong></p> ".$row[ CATEGORY ]."
    <p><strong>Highest Bidder</strong></p> ".$row[ BEST_BIDDER_ID ]."
  </div>
<div class= leftlayer2 >
  <strong>Current Bid</strong> ".$row[ CURRENT_BID ]."
  <p><strong>Start Price</strong></p> ".$row[ START_PRICE ]."
  <p><strong>Buyitnow Price</strong></p> ".$row[ BUYITNOW_PRICE ]."
  <p><strong>Bid Count</strong></p> ".$row[ BID_COUNT ]."
  <p><strong>Start Date</strong></p> ".$row[ ACCESSSTARTS ]."
  <p><strong>End Date</strong></p> ".$row[ ACCESSENDS ]."
  <p><strong>Original End</strong></p> ".$row[ ACCESSORIGIN_END ]."
  <p><strong>Auction Type</strong></p> ".$row[ AUCTION_TYPE ]."
</div>
<div class= leftlayer2 >
    <strong>Private Auction</strong></p> ".$row[ PRIVATE_AUCTION ]."
  <p><strong>Paypal Accepted</strong></p> ".$row[ PAYPAL_ACCEPT ]."
  <p><strong>Auction Watched</strong></p> ".$row[ WATCH ]."
  <p><strong>Finished</strong></p> ".$row[ FINISHED ]."
  <p><strong>Country</strong></p> ".$row[ COUNTRYCODE ]."
  <p><strong>Location</strong></p> ".$row[ LOCATION ]."
  <p><strong>Conditions</strong></p> ".$row[ CONDITIONS ]."
</div>
<div class= leftlayer2 >
  <strong>Auction Revised</strong></p> ".$row[ REVISED ]."
  <p><strong>Cancelled</strong></p> ".$row[ PRE_TERMINATED ]."
  <p><strong>Shipping to</strong></p> ".$row[ SHIPPING_TO ]."
  <p><strong>Fee Insertion</strong></p> ".$row[ FEE_INSERTION ]."
  <p><strong>Fee Final</strong></p> ".$row[ FEE_FINAL ]."
  <p><strong>Fee Listing</strong></p> ".$row[ FEE_LISTING ]."
  <p><a href= #  onclick= makewindows(); return false; >Click for full description </a></p>
</div>";

$lastImg = $row[ PIC_URL ];
echo "<div id= rightlayer >Picture Picture
<img src=".$lastImg.">
</div>";

}

}
mysql_close($con);
?>

编辑:我已经修复了Roborg指出的错误,但是脚本仍无法加载,并且没有给出精确的错误信息。

我已经更新了上面的代码。

最佳回答

以及缺失的</script>

child1.document.write( .$row2["ARTICLE_DESC"]. ) should be

child1.document.write(); 将此翻译成中文:

json_encode() 函数会自动处理任何需要引用的内容。

编辑:

"<a href= # onclick=makewindows()> should be <a href= # onclick= makewindows(); return false; > - 您应该加上引号,return false将阻止您单击链接时被带到“#”处。"

另外,从记忆中我不确定您是否可以打开 about: blank 然后写入它 - 我认为它将视为跨域脚本。您最好在服务器上创建一个最小的“ blank.html”文件并使用它。

问题回答

您需要使用print_r打印数组,例如print_r($row2);

在这条线上:

$row2 = mysql_fetch_array($htmlset);

你正在设置$row2,它表示查询结果中的整行数据所组成的一个数组。即使这个“行”只有一个字段,它仍然是一个数组。如果你只想获取第一个字段的值,可以使用mysql_result

参数为:resource $result,int $row [,mixed $field],使用示例为:

// get the first field of the first row
$fieldVal = mysql_result($htmlset, 0);

// get the third field
$fieldVal = mysql_result($htmlset, 0, 2);

// get the first field of the 2nd row
$fieldVal = mysql_result($htmlset, 1);

你的<script>标签从未关闭,并且你的JavaScript指令没有以分号结束。这可能是问题的根源。





相关问题
热门标签