繁体   English   中英

如何根据房间的可用性使用JavaScript进行提示?

[英]How to use javascript to prompt based on room availability?

我是编程的新手,我的代码需要帮助。 我想让我的页面提示我是否还有剩余房间。 我正在使用管理页面上的onload函数。

到目前为止,这是我的代码

function prompt()
{
< ?php 
include("dbconfig.php");

$sql = "SELECT COUNT(*) FROM rooms WHERE status = 'available'";
$result = @mysql_query($sql) or die("Could not execute query");

?> 
if(< ?php $result <= 14 ?>){
 alert("Rooms left: < ?php echo $result ?>");
 }

else{
 alert("Welcome Admin.");
 } 
}

window.onload=prompt;

编辑:

该代码现在可以正常工作,但是它显示“ Resource id#4”,而不是计数值。

我觉得您无法将php与js代码混合使用。 php主要位于服务器端,而js是您提供的代码段的客户端,也许您应该按如下方式使用纯php:

< ?php 
    include("dbconfig.php");
    $sql = "SELECT COUNT(*) FROM rooms WHERE status = 'available'"; 
    $result = @mysql_query($sql) or die("Could not execute query");
    if ($result <= 14) {
        echo("Rooms left: $result");
    }
    else {
        echo("Welcome Admin.")
    }
 ?>

应该在请求时首先运行

mysql_query返回资源,而不是结果。 尝试使用:

$sql = "SELECT COUNT(*) FROM `rooms` WHERE `status` = 'available'";
$res = @mysql_query($sql) or die('Could not execute query');
$count = mysql_result($res, 0, 0);

php标记中不应有空格:

< ?php 
 ^

应该:

<?php 

您还缺少获取功能,这是如何获取变量中的行数的方法:

<?php $count = mysql_num_rows($result);?>

稍后,您可以在if条件中使用$count变量。

使用mysql_fetch_row ,然后在条件中,将其与$ row [0]进行比较

$sql = "SELECT COUNT(*) FROM `rooms` WHERE `status` = 'available'";
$res = @mysql_query($sql) or die('Could not execute query');

$row = mysql_fetch_row($res);

if(< ?php $row[0] <= 14 ?>){

我认为您对PHP的处理位置与Javascript的处理位置感到困惑。

PHP在服务器端处理 ,而Javascript在客户端处理 这样想吧...

  1. 您访问页面。
  2. 将处理您的PHP,并将最终输出发送到浏览器。
  3. 您的Javascript由浏览器处理。

现在,您将获得一些有趣的输出……尤其是由于缺少echo语句。 这是您可能在浏览器页面源中看到的内容:

function prompt()
{
if(){
 alert("Rooms left: < ?php echo $result ?>");
 }
else{
 alert("Welcome Admin.");
 } 
}

window.onload=prompt;

注意空的if语句 (还有开始标记中的空格:

if(<?php echo ($result <= 14); ?>){
 alert("Rooms left: <?php echo $result ?>");
 }

这应该使您的Javascript评估布尔值为true / false。 不要忘记Javascript也需要包装在<script>标记中!

要回答您的MySQL问题,请尝试如下操作:

//We can alias the COUNT(*) as MyCount for easy reference
$sql = "SELECT COUNT(*) as MyCount FROM rooms WHERE status = 'available'";
$result = @mysql_query($sql) or die("Could not execute query");
$row = mysql_fetch_array($result); //$row is now an array and will now have your count in it
echo $row['MyCount']; //This will print the count from the database. You could use it in other ways as well.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM