2016-04-21 107 views
-2

我想将位于php文件中的php变量传递给单独的JavaScript文件。我试图将输入函数中php文件末尾的变量传递给名为$message$username的jQuery变量。将变量从php文件发送到jquery文件

这是我在哪里至今:

chat.php

<?php 
    //form data 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    //sql server connection credentials 
    $servername = "localhost"; 
    $serverusername = "suser11"; 
    $serverpassword = "suser11"; 
    $databasename = "chat_database"; 
    // Create connection 
    $conn = new mysqli($servername, $serverusername, $serverpassword, $databasename); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    echo "Connected successfully<br /><br />"; 
    $username = $conn->real_escape_string($username); 
    $password = $conn->real_escape_string($password); 
    $sql = "SELECT Salt FROM users WHERE Username='$username'"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) { 
     $salt = $row["Salt"]; 
    } 
    $sql = "SELECT * FROM users WHERE Username='$username' AND Password=MD5('$password$salt')"; 
    $result = $conn->query($sql); 
    if($result->num_rows === 0) { 
     $conn->close(); //close the db connection 
     header('Location: login.html'); //redirect to login.html 
    } else { 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      echo "UserID: " . $row["user_id"]. " - Name: " . $row["username"]. "<br />"; 
     } 
    } 
    // Close the database connection 
    $conn->close(); 
?> 
<textarea id="myChat" type="text" style="width:500px; height:500px;"></textarea> 
<br/> 
<br/> 
<input id="myText" name="myText"/> 
<input type="hidden" value="<?php echo $username; ?>"/> 
<button id="add"> 
    <b>Add to chat</b> 
</button> 
</body> 
</html> 

这里是我的jQuery文件

$(document).ready(function() { //start 1 
    //alert("hello world, jQuery is working"); 
    setInterval(function(){$("#myChat").load("chat.txt")},100); //update the textarea with the text file contents every 10th of a second 
    var $message = ''; 
    var $username = ''; 
    $('#add').click(function(){ // start 2 
     var $message = $('#myText').val(); 
     var $username = $('$username').val(); 
     //alert("Got the message"); 
     $.ajax({ // start 3 
      type: "POST", 
      url:'myprocess.php', 
      data:{'xml': $xmlString}, 
      dataType:'text/xml', 
      //success: function(r){ // start 4 
       //alert('Got it'); 
      //}, // end 4 
      //error: function (xhr, desc, err) { 
       //console.log(xhr); 
       //console.log("Details: " + desc + "\nError: " + err); 
       //alert ("Error: " + err); 
      //} 
     }); // end 3 
     $('#myText').val(""); //clears value of text box on click of button with id=add 
     }); // end 2 
    //forming proper xml 
    $xmlString ='<?xml version="1.0" encoding="ISO-8859-1"?>'; 
    $xmlString += '<message><user>' + username + '</user><text>' + $message + '</text></message>'; 
}); // end 1 

回答

0

在PHP中,你可以通过像: 只需更换您的密码:

// output data of each row 
     while($row = $result->fetch_assoc()) { 
      echo "UserID: " . $row["user_id"]. " - Name: " . $row["username"]. "<br />"; 
     } 

与下面的代码:

while($row = $result->fetch_assoc()) { 
    echo $row["user_id"]."||".$row["username"]; 
} 

和AJAX:

$.ajax({ 
     type: "POST", 
     url:'myprocess.php', 
     data:{'xml': $xmlString}, 
     dataType:'text/xml', 
     success: function(data){ 
       details = data.split("||"); 
       username = details[0]; 
       password = details[1]; 
     } 
}); 
+0

哪里包括PHP?在我目前的PHP代码结束? – neost3

+0

我编辑了答案。 –

+0

由于某些原因,仍然无法正常工作。我是否也想用上面的代码替换当前的ajax?这是我试过的,它不起作用。 – neost3

相关问题