【问题标题】:How to change html's <p> inner text from PHP?如何从 PHP 更改 html 的 <p> 内部文本?
【发布时间】:2015-11-12 01:53:59
【问题描述】:

我正在尝试从 PHP 更改 HTML 元素的内部文本。这可能吗?我正在为我的网站构建一个聊天应用程序(实时聊天),我需要通过查询数据库来不断更新聊天,但我一直坚持从 PHP 获取元素并从 HTML 更改其内部文本。提前致谢。

<?php
if (isset($_POST['iChat'])){
    $db_address = 'localhost';
    $db_username = 'root';
    $db_password = '';
    $db_name = 'chat';
    $connection = mysqli_connect($db_address, $db_username, $db_password, $db_name);
    $message = $_POST['iChat'];
    $personaname = $_COOKIE['personaname'];

    if ($message != '' && $personaname != ''){
        $query = "INSERT INTO chat VALUES (null, '{$personaname}', '{$message}')";
    mysqli_query($connection, $query);
    }
}

function get(){
    $db_address = 'localhost';
    $db_username = 'root';
    $db_password = '';
    $db_name = 'chat';
    $connection = mysqli_connect($db_address, $db_username, $db_password,     $db_name);
    $query = "SELECT `sender`, `message` FROM chat";
    $result = mysqli_query($connection, $query);

    >>>> GET ELEMENT HERE <<<<<<

    return json_encode($result);
}
?>

【问题讨论】:

  • 我希望您实际上并未使用 root 访问数据库。无论如何,我认为您正在寻找的是jquery。发出 ajax 请求以获取任何新记录,然后为返回的每条记录附加一个新的 &lt;p&gt; 标记。
  • 我是新手编码员...我不太明白。你能包括一些代码吗? :D
  • 要包含很多代码。去查找 jquery 和 ajax 请求。它允许您仅更新页面的一部分。当您从 ajax 调用中获取数据库结果时,生成带有相关内容的 &lt;p&gt; 标记并将其附加到页面上的 HTML 中。

标签: php html json


【解决方案1】:

要更改任何元素内的内容,或者在您网站上的任何时刻或位置更改内容,最简单且可能是最好的方法是 Ajax 请求。

使用 ajax 请求,您基本上可以向任何给定 URL 发送帖子或访问您的服务器。

您还可以传递数据(变量/对象)。通过这种方式,您可以将任何用户生成的数据发送到您的服务器并对其进行处理。 (例如输入字段)。

发出请求后,您有 3 个回调:successcompleteerror

无论是在成功或错误回调之后,总会触发完成。在成功回调中,您可以返回请求的result(您从 php 文件返回的值)。

error 回调中,您可以通知用户出现问题,例如请求以错误请求或错误网关或超时、404/503 等响应时。

更多信息可以在这里找到,包括一些其他有用的功能): http://api.jquery.com/category/ajax/

示例代码:

jQuery(document).ready(function($){
    $.ajax({
        url: '?act=process',
        type: 'post',
        data: {
            id: $id,
            name:$name,
            description:$description
        },
        success: function (result) {
            $('.alert-success').show();
            console.log('Yay it worked');
        },
        error: function (xhr, ajaxOptions, thrownError) {
            $('.alert-danger').show();
            console.log('Something went wrong');
        }
    });
});

【讨论】:

    【解决方案2】:

    我猜你正在寻找 Ajax

    1. 你可能有一个触发按钮

    2. 点击按钮,启动ajax请求(例如:使用jQuery ajax) 请求由您的 PHP 代码返回的数据库数据。

    3. 如果请求成功,将返回的数据放入 HTML 元素中。

      document.getElementById("ElementID").innerHTML = "Data return by PHP!";
      

    【讨论】:

    • 问题是我需要它没有触发按钮,我希望它从一开始就不断执行......
    • OK,然后做一个定时器,不断请求。不要一直点击按钮。使用 JavaScript 函数setInterval 是最简单的实现方式。顺便说一句,有更好的在线聊天方式,请查看en.wikipedia.org/wiki/WebSocket (HTML5) ,这可能会对您有所帮助。
    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多