显示来自datebase sql的数据js

时间:2017-12-08 00:41:13

标签: javascript php ajax mysqli

我想将textbox的值推送到sql,然后显示它。 我读了很多主题,但仍然没有。我一直有问题解释我的问题,但我希望你看看我想做什么特别是你看看db2.php

    $("#send").click(function(){

    var username = "<span class ='username' = >Klient: </span>";
    var newMessage = $("#textbox").val();
    nw = newMessage;
    $.ajax({
    type: "POST",
    url: "db2.php",
    data: {'name': nw },
    success: function (json) {
        jss = json.PYT;
        oss = json.ODP;
        console.log(jss);
    }

});
    $("#textbox").val("");

    var prevState = $("#container").html();


    if( prevState.length > 3){
        prevState = prevState + "<br>";
        }

        $("#container").html(prevState + username + newMessage);

        $("#container").scrollTop($("#container").prop("scrollHeight"));

        ai(newMessage);

    });

和我的db2.php。

<?php
header('Content-type: application/json');
include 'connect.php';  

if (isset($_POST['name'])) {

$name = $_POST['name'];
$queryResult = $connect->query("select * from Chatbot where '$name' LIKE 
CONCAT('%',PYT,'%')");
$result = array();
while($pomoc = $queryResult->fetch_assoc()){
    $result[] = $pomoc;
}
}

echo json_encode($result);

现在我的结果是{},echo为null。

的console.log(NW) VM289:1个dsasa 未定义 我知道如何从ajax获取输出,但如果我想推送这些数据一切都会出错。最好的问候

更新。现在我想从这个函数中获取jss值给另一个。

   var jss = {}; //(first line code)

    $("#send").click(function(){

    var username = "<span class ='username' = >Klient: </span>";
    var newMessage = $("#textbox").val();
    nw = newMessage;
$.ajax({
type: 'POST',
url: 'db2.php',
data: { 
    'name': nw, 
},
success: function(data){
   jss = data[0].PYT;

}
});

更新2

var jss2 = {};
var nw;




$(function(){

username();

$("#textbox").keypress(function(event){
if ( event.which == 13) {
    if ( $("#enter").prop("checked") ){

        $("#send").click();
        event.preventDefault();
        }
    }
});
$("#send").click(function(){

    var username = "<span class ='username' = >Klient: </span>";
    var newMessage = $("#textbox").val();


    $("#textbox").val("");

    var prevState = $("#container").html();


    if( prevState.length > 3){
        prevState = prevState + "<br>";
        }

        $("#container").html(prevState + username + newMessage);

        $("#container").scrollTop($("#container").prop("scrollHeight"));

        ai(newMessage);

    });


})

function send_message(message){

    var prevState = $("#container").html();

    if(prevState.length > 3){
    prevState = prevState + "<br>";
    }

    $("#container").html(prevState + "<span class = 'bot'>Chatbot: </span>" + message);
}
function username(){
    $("#container").html("<span class = 'bot'>Chatbot: </span>Hi!");
}
function myFunction() {
var x = document.getElementById("textbox").value;

}

function ai(message){
    var jss;
    message = message.toLowerCase();
    nw = message;

    $.ajax({
type: 'POST',
url: 'db2.php',
data: { 
    'name': nw, 
},
success: function(data){
   jss = data[0].PYT;

}
});

console.log(jss);
    if ((message.indexOf(jss)>=0) || (message.indexOf("?")>=0)){
    send_message(Answer);
    return;
    }

    else{
    send_message("Nope ");
    }

}  

1 个答案:

答案 0 :(得分:0)

我认为这是您需要对函数执行的操作,以便在ajax请求完成后可以正确使用jss变量:

function ai(message){
  var jss;
  message = message.toLowerCase();
  nw = message;

  $.ajax({
    type: 'POST',
    url: 'db2.php',
    data: { 
      'name': nw, 
    },
    success: function(data){
      jss = data[0].PYT;
      console.log(jss);
      if ((message.indexOf(jss)>=0) || (message.indexOf("?")>=0)){
        send_message(Answer);
        return;
      }
      else{
        send_message("Nope ");
      }
    }
  });
}

任何依赖jss变量的代码都必须在ajax调用完成之后才能执行。由于ajax调用是异步运行的,因此保证这一点的唯一方法是将该代码包含在(或触发)&#34;成功&#34;你的ajax请求中的回调函数。