2017-07-24 132 views
-1

我試圖將我的查詢結果打印到在我的專家的其他文件中調用的div中。 thefile在那裏我有resulta被稱爲chat.php,並從index.php叫我如何可以打印結果到DIV chat在div上打印結果

這是從chat.php我的代碼

<?php session_start(); 

include 'db.php'; 
require_once '../functions.php'; 

comprobarSession(); 
$id=$_GET['id']; 
//var_dump($id) 
?> 

<?php 

$sql = "SELECT ue.nombre de, ur.nombre a, c.message FROM messages c 
     INNER JOIN usuarios ue ON c.idEmitter = ue.idUsuario 
     INNER JOIN usuarios ur ON c.idReceiver = ur.idUsuario 
     WHERE (c.idEmitter = :usr1 AND c.idReceiver = :usr2) 
     OR (c.idEmitter = :usr2 AND c.idReceiver = :usr1) 
     ORDER BY sent ASC"; 

$usr1=$id; 
$usr2=$us; 

$stmt = $conexion->prepare($sql); 
$stmt->bindParam("usr1",$usr1); 
$stmt->bindParam("usr2",$usr2); 
$stmt ->execute(); 
$arrDatos = $stmt->fetchAll(PDO::FETCH_ASSOC); 
//var_dump($arrDatos); 
imprimir ($arrDatos); 

$pdo = null; 

?> 

<?php 
//Una función para mostrar los datos 
function imprimir($arrDatos) 
{ 

    if ($arrDatos) 
    { 
     echo "<hr />SE ENCONTRARON ".count($arrDatos). " REGISTROS<br /><hr />"; 
     /** 
     * Construímos los datos de forma limpia 
     */ 
     $strHtml='CHAT:<br />';  
     foreach ($arrDatos as $row) 
     { 
      //'<div id="chat_data">' 
      $strHtml.='<span style="color: green;>'.$row["de"].': </span>'.$row["message"].'<br />'; 
      $strHtml.='<span style="color: green;>'.$row["a"].': </span>'.$row["message"].'<br />'; 
      //'</div>' 
     } 
     echo $strHtml; 
    } 
} 
?> 

和的index.php

的這一個
<?php session_start(); 

include 'db.php'; 
include '../functions.php'; 

$emit = obtener_mensajes($conexion, $us); 

comprobarSession(); 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <link rel="stylesheet" href="style.css"> 
    <script> 
     function ajax(){ 
      var req = new XMLHttpRequest(); 
      req.onreadystatechange = function(){ 
       if (req.readyState == 4 && req.status == 200) { 
        document.getElementById('chat').innerHTML = req.responseText; 
       } 
      } 

      var myId = document.getElementById('myId'); 
      var url = 'chat.php?id='+myId; 

      req.open('POST', url, true); 
      req.send(); 

     } 

     setInterval(function(){ 
      ajax() 
     }, 1000); 
    </script> 
</head> 
<body onload="ajax();"> 

<div id="container"> 
    <div id="chat_box"> 
     <div id="chat">HERE IS WHERE CHAT.PHP NEED TO BE</div> 
    </div> 
    <form action="index.php" method="POST"> 
     <textarea name="message" placeholder="Enter message"></textarea> 
     <input type="hidden" name="nombre" placeholder="Name" value="<?php echo $_SESSION['usuario']['nombre']?>"> 
     <input type="submit" name="submit" value="Send it"> 
     <?php foreach ($emit as $msg): ?> 
     <input type="hidden" id="myId" name="idReceiver" value="<?php echo $msg['idEmitter']; ?>"> 
     <input type="hidden" name="idEmitter" value="<?php echo $us ?>"> 
     <?php endforeach ?> 
    </form> 
<?php 

if (isset($_POST['submit'])) { 
    $name = $_POST['nombre']; 
    $message = $_POST['message']; 
    $emitter = $_POST['idEmitter']; 
    $receiver = $_POST['idReceiver']; 

    $query = "INSERT INTO messages (nombre, message, idEmitter, idReceiver, seenUsuario) VALUES ('$name', '$message', '$emitter', '$receiver', '0')"; 

    $run = $conexion->query($query); 
} 

?> 
</div> 

</body> 
</html> 

Edition

這是印刷時,我常代碼 enter image description here

功能是在主文件夾chat.php的

enter image description here

+2

一個簡單的包括什麼問題? – LordNeo

+0

nope,如果我把這個打印包含一些錯誤 –

+0

可能是因爲它的相對路徑,仍然是通過你的代碼的外觀來實現的最簡單的一個。 – LordNeo

回答

0

內容

<?php 
$id=$_GET['id']; 
//var_dump($id) 
?> 

<?php 

$sql = "SELECT ue.nombre de, ur.nombre a, c.message FROM messages c 
     INNER JOIN usuarios ue ON c.idEmitter = ue.idUsuario 
     INNER JOIN usuarios ur ON c.idReceiver = ur.idUsuario 
     WHERE (c.idEmitter = :usr1 AND c.idReceiver = :usr2) 
     OR (c.idEmitter = :usr2 AND c.idReceiver = :usr1) 
     ORDER BY sent ASC"; 

$usr1=$id; 
$usr2=$us; 

$stmt = $conexion->prepare($sql); 
$stmt->bindParam("usr1",$usr1); 
$stmt->bindParam("usr2",$usr2); 
$stmt ->execute(); 
$arrDatos = $stmt->fetchAll(PDO::FETCH_ASSOC); 
//var_dump($arrDatos); 
imprimir ($arrDatos); 

$pdo = null; 

//Una función para mostrar los datos 
function imprimir($arrDatos) 
{ 

    if ($arrDatos) 
    { 
     echo "<hr>SE ENCONTRARON ".count($arrDatos). " REGISTROS<br><hr>"; 
     /** 
     * Construímos los datos de forma limpia 
     */ 
     $strHtml='CHAT:<br>';  
     foreach ($arrDatos as $row) 
     { 
      //'<div id="chat_data">' 
      $strHtml.='<span style="color: green;>'.$row["de"].': 
         </span>'.$row["message"].'<br />'; 
      $strHtml.='<span style="color: green;>'.$row["a"].': 
         </span>'.$row["message"].'<br />'; 
      //'</div>' 
     } 
     echo $strHtml; 
    } 
} 
?> 

index.php文件的內容

<?php session_start(); 

include 'db.php'; 
include '../functions.php'; 

$emit = obtener_mensajes($conexion, $us); 

comprobarSession(); 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <link rel="stylesheet" href="style.css"> 
    <script> 
     function ajax(){ 
      var req = new XMLHttpRequest(); 
      req.onreadystatechange = function(){ 
       if (req.readyState == 4 && req.status == 200) { 
        document.getElementById('chat') 
        .innerHTML =req.responseText; 
       } 
      } 

      var myId = document.getElementById('myId'); 
      var url = 'chat.php?id='+myId; 

      req.open('POST', url, true); 
      req.send(); 

     } 

     setInterval(function(){ 
      ajax() 
     }, 1000); 
    </script> 
</head> 
<body onload="ajax();"> 

<div id="container"> 
    <div id="chat_box"> 
     <div id="chat"><?php include("chat.php");?></div> 
    </div> 
    <form action="index.php" method="POST"> 
     <textarea name="message" placeholder="Enter message"></textarea> 
     <input type="hidden" name="nombre" placeholder="Name" value=" 
     <?php echo $_SESSION['usuario']['nombre']?>"> 
     <input type="submit" name="submit" value="Send it"> 
     <?php foreach ($emit as $msg): ?> 
     <input type="hidden" id="myId" name="idReceiver" value=" 
     <?php echo $msg['idEmitter']; ?>"> 
     <input type="hidden" name="idEmitter" value="<?php echo $us ?>"> 
     <?php endforeach ?> 
    </form> 
<?php 

if (isset($_POST['submit'])) { 
    $name = $_POST['nombre']; 
    $message = $_POST['message']; 
    $emitter = $_POST['idEmitter']; 
    $receiver = $_POST['idReceiver']; 

    $query = "INSERT INTO messages (nombre, message, idEmitter, 
     idReceiver, seenUsuario) VALUES ('$name', '$message', '$emitter', 
     '$receiver', '0')"; 

    $run = $conexion->query($query); 
} 

?> 
</div> 

</body> 
</html> 

這應該工作文件因爲考慮到chat.php和index.php是在同一個文件夾和r前往db.php和functions.php都很好。

+0

我使用解決方案的結果編輯我的問題 –