div之后没有回应php

时间:2013-02-11 01:53:49

标签: php html css

我有一个问题,在div弹出后回显或甚至检索一个值,任何人都可以帮助问题是在divpopup后$ r没有显示。 或者更确切地说,fetch不会迭代,它只显示第一条记录。 提前谢谢

<?php
   $con = mysql_connect('****', 'root','****')    or die('Error connecting to MySQL server.');  
mysql_select_db("dreschema", $con) or die("cannot select DB"); 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link href="styles2.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet" type="text/css" />
<link href="styleshref.css" rel="stylesheet" type="text/css" />
<script>


</script>
</head>
<body>
<div id="container1">


 <div align="center"></div>
  <div id="mainContent1">




<?php 
$text = $_GET["searchtext"];
echo "Results displayed for   ". $text;
echo '</br>';


   $query4 = "SELECT * from products WHERE ProductName LIKE '%$text%'";
$data = mysql_query($query4, $con);
if (!mysql_query($query4, $con)){
print mysql_error();
exit;
}
     while ($row = mysql_fetch_array($data)) {
echo $row['ProductName'];

if($row['Stock']== 0 OR $row['Stock']== "")
{
echo "(SOLDOUT)";
echo '<input type="hidden" name="prod" value="' . $row['Image'] . ' " " id = "prod">';
echo '<a href="preorder.php?image=' . $row['Image'] . '"><img id = "imageid" src="' . $row['Image'] . '" alt="' . $row['Image'] . '"  width="80" height="80" style="margin-left:1.5em;margin-top:1.5em;"/></a>';
echo $row['Price'] . "PhP";
?>

   <div id="blanket" style="display:none;"></div>
    <div id="popUpDiv" style="display:none;">
    <a href="#" onclick="popup('popUpDiv')"><font size =" 20">x</font></a><br>


        <a href="#" onclick="popup('popUpDiv')" ><?php echo '<iframe src="orders2.php?image=' . $row['Image'] . '"style= position:absolute;width:500px;height:500px;"></iframe>';?> </a>

    </div>  
  <a href="#" onclick="popup('popUpDiv')">Click to Open CSS Pop Up</a><br>  

<?php
}
 else 
{
echo '<input type="hidden" name="prod" value="' . $row['Image'] . ' " " id = "prod">';
echo '<a href="orders2.php?image=' . $row['Image'] . '">';
echo '<img id = "imageid" src="' . $row['Image'] . '" alt="' . $row['Image'] . '"  width="80" height="80" style="margin-left:1.5em;margin-top:1.5em;"/></a>';
echo $row['Price'] . "PhP";
$r = $row['Image'];
  echo '<br>';

?>


    <div id="blanket" style="display:none;"></div>
    <div id="popUpDiv" style="display:none;">
<?php
echo $r;
?>
    <a href="#" onclick="popup('popUpDiv')"><font size =" 20">x</font></a><br>

        <a href="#" onclick="popup('popUpDiv')" ><?php echo '<iframe src="orders2.php?image=' . $row['Image'] . '"style= position:absolute;width:500px;height:500px;"></iframe>';?> </a>

    </div>  
  <a href="#" onclick="popup('popUpDiv')">Click to Open CSS Pop Up</a><br>  



   <?php
}


}
?>

    <!-- end #mainContent --></div>
<!-- end #container --></div>
</body> 
</html>

1 个答案:

答案 0 :(得分:0)

这可能是也可能不是答案,但它不适合评论部分,所以我想在这里扩展它。查看代码很难判断问题是否是(a)MySQL只返回一行; (b)PHP循环遇到问题;或者(c)一切正常,但你的HTML标记是如此混乱,浏览器根本无法按照你的想法呈现它。

要消除第一个问题,请在查询后立即添加:

$num_rows = mysql_num_rows($data);
if (!$num_rows){die('no rows');}
echo "<p>$num_rows rows returned</p>";

通过这种方式,您可以查看返回的行数。另外,请勿这样做:if (!mysql_query($query4, $con)){。这样做if(!$data){

----- ASIDE ----

  

最好切换到PDOmysqli,因为您当前的设置会被黑客入侵,而且您的数据会搞砸。 *关于MySQL   前面,至少应该设置$text = mysql_real_escape_string($_GET["searchtext"]);以避免最简单   SQL注入攻击,为了g * d的缘故,请不要将root用户用于您的站点。设置具有有限权限的MySQL用户并使用它们...另外,为了避免XSS注入,当strip_tags($_GET["searchtext"])将文本echo添加到屏幕时,您还应该echo '<input type="hidden" name="prod" value="' . $row['Image'] . ' " " id = "prod">';。*

----- / ASIDE ----

如果问题不是查询返回单个响应,请查看源代码。你确定你没有看到多个循环值的代码吗?您有很多标记问题。我突出了几点:

  1. value - 那些在那里做的是什么?有一个漂浮的“只是坐在那里,这可能弄乱浏览器如何解释标签。此外,您通常在属性值中包含前导或尾随空格...除去这些空格,尤其是在prod属性中。
  2. 相同的行(以及其他行):您已静态编码元素ID(<iframe src="orders2.php?image=' . $row['Image'] . '"style= position:absolute;width:500px;height:500px;"></iframe>)。 ID应该是唯一的,所以如果代码成功循环,你最终会得到许多具有相同ID的元素(这不应该导致你面临的问题,但是包含javascript,你不是向我们展示,所以JS可以删除重复的ID。)
  3. style - src属性合并到style属性中。你需要一个空间,或者浏览器可能不知道如何处理这两个属性。
  4. 同一行,<a href="orders2.php?image=' . $row['Image'] . '">属性没有开头“但它有一个结束” - 更多相同。
  5. if - 你没有开场“但你有一个结束”......你可以完全省略引用,但你不能同时做到这两点。
  6. 还有更多问题,以及一些您应该清理的通用编码标准,但是您应该查看生成的代码,并确保它通过了。

    最后,确保图像应该显示。在第一个iframe语句中,图像永远不会被告知显示(可能是在else中),在echo语句中,图像被div编辑为{{1} {}有} style="display:none",所以我们不希望看到它。如果问题只是没有显示图像,请确保iframe src正确(当您将图像URI作为urlencode变量传递时,您可能需要_GET图像URI 。)

    如果您发布生成的HTML代码(并确认它不仅仅是MySQL返回一行),我们可能会进一步提供帮助。