【问题标题】:can't retrive the data from database无法从数据库中检索数据
【发布时间】:2014-04-20 09:21:11
【问题描述】:

这里是脚本,如果我选择日期然后我从数据库中获取数据。但如果我选择任何日期,那么我无法从日历中选择日期的数据库中获取任何数据。有人可以修吗?

<script language="JavaScript" type="text/javascript" src="calendar/calendar.js"></script>
<script src="jquery.js"></script>
<script>
$(document).ready(function()
{
//ajaxTime.php is called every second to get time from server
var refreshId = setInterval(function()
{
 $('#timeval').load('ajaxTime.php?randval='+ Math.random());
}, 1000);

//stop the clock when this button is clicked
$("#stop").click(function()
{
 clearInterval(refreshId);
});
});
</script>
<!--<strong><div align="right" id="timeval" style="color:#FF6600; font-family:Arial, Helvetica, sans-serif">--:--:--</div></strong>--> 
        <table width="420" border="1" >
        <form name="showdraw" action="ooo.php" method="post">
        <tr  bgcolor="#FF6600">
                <td><script> DateInput('cdate', true, 'YYYY-MM-DD'); </script></td>
                <td> <input type="submit" value ="Show"> <input type="hidden" value="Show" name="d1"> </td>
        </tr>
        <tr  bgcolor="#FF6600">
            <td><font color=#2F4F4F><h2>Draw Time</h2></font></td>
            <td><font color=#2F4F4F><h2>Wining Number</h2></font></td>
          </tr>
        </form>
<tbody>
<?php
include('connect.php');
if (isset($_GET["d1"])) { $d1= $_GET["d1"]; } else { $d1=('YYYY-MM-DD'); }; 
$result = $db->prepare("SELECT * FROM birthday WHERE date = :a");
$result->bindParam(':a', $d1);
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<tr class="record">
            <tr  bgcolor="#EEF3E2">
<td><font size=5><font color='#008B00'><?php echo $row['dt']; ?></font></td>
<td><font size=5><font color='#008B00'><?php echo $row['wn']; ?></font></td>
<?php
}
?>
</tbody>
</table>

【问题讨论】:

  • 检查器/Javascript 控制台说什么?使用 while 代替 for:while($row = $result->fetchAll()) {
  • 为什么要每秒获取服务器时间?而且您还有无效的 HTML。您不能在 tr 中包含 tr 并且您永远不会关闭它。您打开font(我认为已弃用)两次,但只关闭一次。
  • @putvande — tr 元素的结束标签是可选的,所以这里没有嵌套的 trs。
  • 结束标签是可选的吗?从何时起?大多数浏览器都会修复它,但它是必需的。
  • 我能做什么你能解决它吗?

标签: php mysql database


【解决方案1】:

好的,这里有一大段代码,从表单标签开始。我不知道你为什么一直把隐藏的输入放回去。您不需要它,只要日历输入称为 d1。如果您添加第二个具有相同名称的输入,您将消除正确的值,并且您将永远无法从日历输入中获取日期。

    <form name="showdraw" action="ooo.php" method="post">
    <tr bgcolor="#FF6600">
            <td><script> DateInput('cdate', true, 'YYYY-MM-DD'); </script></td>
            <td> <input type="submit" value ="Show"> </td>
    </tr>
    <tr bgcolor="#FF6600">
        <td><font color="#2F4F4F"><h2>Draw Time</h2></font></td>
        <td><font color="#2F4F4F"><h2>Wining Number</h2></font></td>
      </tr>
    </form>
    <tbody>

<?php
include('connect.php');

if (isset($_GET["d1"])) { 
    $d1= $_GET["d1"]; 
} else { 
    $d1=date('YYYY-MM-DD'); 
}

$result = $db->prepare("SELECT * FROM birthday WHERE date = :a");
$result->bindParam(':a', $d1);
$result->execute();

while($row = $result->fetchAll()){
?>

<tr class="record">
    <tr  bgcolor="#EEF3E2">
    <td><font size="5"><font color="#008B00"><?php echo $row['dt']; ?></font></td>
    <td><font size="5"><font color="#008B00"><?php echo $row['wn']; ?></font></td>
    </tr>

<?php  }   ?>

    </tbody>
    </table>

【讨论】:

  • 如果我添加这个&lt;td&gt;&lt;input name="action" type="text"&gt;&lt;script&gt; DateInput('cdate', true, 'YYYY-MM-DD'); &lt;/script&gt;&lt;/input&gt;&lt;/td&gt; 然后我得到空白文本字段,但我已经有claeder 字段
  • 我已将所有脚本粘贴到此处。我不知道名字是什么,但我从这里附上屏幕截图检查s4.postimg.org/uclnj0acd/Untitled.jpg@larsanders
  • 我无法检查。要查看输入的名称,您必须右键单击并查看源代码,或者右键单击并检查元素。我不能在屏幕截图上做到这一点。实际创建后,您可以从页面中发布 html 吗?不是源代码——我们有。最终完成的 html。
  • ok @larsanders 我更新了脚本而不是它的脚本的源代码....我更新编辑现在看到 d1 是隐藏字段名称
猜你喜欢
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 2012-09-20
  • 2018-02-15
相关资源
最近更新 更多