Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果变量不存在,如何调用函数?_Php_Jquery_Html_Mysql - Fatal编程技术网

Php 如果变量不存在,如何调用函数?

Php 如果变量不存在,如何调用函数?,php,jquery,html,mysql,Php,Jquery,Html,Mysql,我试图调用我的变量“o”或“null”或“false”或“undefined”,但它不起作用。我的问题是,我有一个聊天代码,它说重新加载页面的所有2秒钟,但如果有人在文本区域写作,然后删除文本。我需要一个代码,说每2秒重新加载页面,但如果有人在文本区域写作,那么它应该在发送文本后重新加载。 您可以看到代码,如果您想尝试代码,请复制它。但是首先您必须在sql中创建一个名为“my_db”的数据库,然后运行该页面 <?php $hostname_db = "localhost";

我试图调用我的变量“o”或“null”或“false”或“undefined”,但它不起作用。我的问题是,我有一个聊天代码,它说重新加载页面的所有2秒钟,但如果有人在文本区域写作,然后删除文本。我需要一个代码,说每2秒重新加载页面,但如果有人在文本区域写作,那么它应该在发送文本后重新加载。 您可以看到代码,如果您想尝试代码,请复制它。但是首先您必须在sql中创建一个名为“my_db”的数据库,然后运行该页面

<?php
    $hostname_db = "localhost";
    $database_db = "my_db";
    $username_db = "root";
    $password_db = "";
    $db = mysql_pconnect($hostname_db, $username_db, $password_db) or trigger_error(mysql_error(),E_USER_ERROR); 
    ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }

      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }

    //select db and create table to chat


    $conn = new PDO("mysql:host=$hostname_db", $username_db, $password_db);
    $sql = "use my_db";
    $conn->exec($sql);
    $sql = "CREATE TABLE IF NOT EXISTS `chatroom`(
    `idmassage` int(11) NOT NULL AUTO_INCREMENT,
    `massage` text NULL,
    `user` varchar(50) NOT NULL,    
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`idmassage`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=hebrew ";
    $conn->exec($sql);



    //select chatroom from dataase

    mysql_select_db($database_db, $db);
    $query_chat = "SELECT massage, `user`, `date` FROM chatroom ORDER BY idmassage ASC";
    $chat = mysql_query($query_chat, $db) or die(mysql_error());
    $row_chat = mysql_fetch_assoc($chat);
    $totalRows_chat = mysql_num_rows($chat);

    //inser new data
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "chat")) {
      $insertSQL = sprintf("INSERT INTO chatroom (massage) VALUES (%s)",
                           GetSQLValueString($_POST['massage'], "text"));

      mysql_select_db($database_db, $db);
      $Result1 = mysql_query($insertSQL, $db) or die(mysql_error());

      $insertGoTo = "chatTest.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    //mysql_close($db);
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Untitled Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>




    <style type="text/css">
    body {
        margin: 0;
        background-color: #D4CACB;
    }
    .chat {
        width: 60%;
        background-color: #878787;
        position: fixed;
    }
    .chat .massagechat {
        overflow-y: scroll;
        width: 100%;
        height: 400px;
    }
    #chat #massagechat #refresh {
        width: 100%;
        background-color: #FFFFFF;
        margin-top: 14px;
    }
    body p {
        position: fixed;
        float: right;
        margin-top: 482px;
        margin-left: 94px;
    }
    </style>
    </head>

    <body>
    <div id="chat" class="chat">
        <div id="massagechat" class="massagechat">
            <?php do { ?>
            <div id="refresh">
               <p1><?php echo $row_chat['user']." ".$row_chat['date']."</br>"; ?></p1>
               <p2><?php echo $row_chat['massage']; ?></p2>
            </div>
            <?php } while ($row_chat = mysql_fetch_assoc($chat)); ?>

        </div>

        <div class="form">
            <form method="POST" action="<?php echo $editFormAction; ?>" name="chat">
                <textarea name="massage"  id="input" placeholder=" "></textarea>
                    <input id="submit" type="submit">
                         <input type="hidden" name="MM_insert" value="chat">
            </form>
        </div>
    </div>
    <p>dddd</p>
    <p><?php echo $row_chat; ?></p>

    </body>
    </html>
    <?php
    mysql_free_result($chat);
    ?>
    <script>
    $( "div.massagechat" ).scrollTop( 999999*999999);
    </script>
    <script>

    ////////////
    $('textarea').on('keyup',function(){

    var input = $(this);

        if(input.val().length == ""){

    var cacheData;
    var data = $("chat").html();
    var auto_refresh = setInterval(
    function ()
    {
        $.ajax({
            url: 'chatTest.php',
            type: 'POST',
            data: data,
            dataType: 'html',
            success: function(data) {
                if (data !== cacheData){
                    //data has changed (or it's the first call), save new cache data and update div
                    cacheData = data;
                    $("#chat").html(data);
                }           
            }
        })
    }, 2000);};})// check every 30000 milliseconds
    </script>

无标题文件
身体{
保证金:0;
背景色:#D4CACB;
}
.聊天{
宽度:60%;
背景色:#878787;
位置:固定;
}
.聊天.按摩聊天{
溢出y:滚动;
宽度:100%;
高度:400px;
}
#聊天#按摩聊天#刷新{
宽度:100%;
背景色:#FFFFFF;
边缘顶部:14px;
}
主体p{
位置:固定;
浮动:对;
边缘顶部:482px;
左边距:94px;
}

setInterval
函数不应位于文本区域的keyup事件下。您可以将其置于文档就绪处理程序下

此外,在setInterval函数中检查文本区域值,仅当该值不为空时才发送请求

像这样,

$(document).ready(function(e){
      var auto_refresh = setInterval(
    function ()
    {
        if($('textarea').val().trim()!='') {
                $.ajax({
                    url: 'chatTest.php',
                    type: 'POST',
                    data: data,
                    dataType: 'html',
                    success: function(data) {
                        if (data !== cacheData){
                            //data has changed (or it's the first call), save new cache data and update div
                            cacheData = data;
                            $("#chat").html(data);
                        }           
                    }
                });
        }
    }, 2000);
});

我不明白问题出在哪里。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。仅供参考,
按摩
不同于
消息
。这是两件完全不同的事情…我在使用时聊天1在发送消息之前键入,另一个用户(例如用户2)通过用户发送消息1文本区域已清理完毕希望现在就可以帮助我感谢所有时间请不要使用它为您生成的Dreamweaver数据库代码。这是十五年前就应该被消灭的东西。PHP7已经取消了对mysql\u查询的支持,所以您必须继续改进。因为准备好的语句是非常干净简洁的,所以我的代码更容易阅读。是的,我知道,谢谢。不管怎样,我在中间没有把MySQL移动到MySQL上,不管上面的代码JQ有什么想法。