Задать вопрос
@TechNOIR

Jquery. Как исправить проблему с постоянным выполнением получаемого Javascript из Php?

Добрый день.

Согласен, в названии вопроса можно запутаться но попытаюсь обьяснить))
Имеется вот такой скрипт Js+Jquery

var username = "";
var user = "Пользователь"
var botname = "Бот";

function send_message(conv,message){
    if (conv.length > 4) {
            conv = conv + "<br>";
    }
    $("#converse").html(conv +"<script></script><div class='message-box left-img'><div class='picture'><img src='img/a.png' title='user name'></div><div class='mes'><span class = 'current-msg'>" + "<span id='chat-bot'>" + botname + ": </span><p>" + message + "</p></span></div></div>");
    $(".current-msg").hide();
    $(".current-msg").delay(500).fadeIn(function() {
        $(".current-msg").removeClass("current-msg");
    var e = document.getElementById('converse');
        e.scrollTop=e.scrollHeight
    })
    }
function get_username(conv){
    send_message(conv,"Привет, могу ли я чем то помочь?");
}

function ai(conv,message){
        // $("#send").click(function(){
            $.get("get.php", {q:message}, function(data, status){
                // alert("Data: " + data + "\nStatus: " + status);
                send_message(conv,data);
                });
            console.log('Я всё');
            
        // });
}
$(function(){
    var open = false;
    var conv = $("#converse").html();
    get_username(conv);
    $("#send").click(function(){
        var usermsg = $("#textbox").val();
        conv = $("#converse").html();
        console.log(conv.length);
		if (usermsg != "") {
			$("#textbox").val("");
			if (conv.length > 4) {
				conv = conv + "<br>";
			}
			$("#converse").html(conv + "<div class='message-box right-img'><div class='picture'><img src='img/user.png' title='user name'></div><div class='mes'><span><span id='chat-user'>" + user + ": </span><p>" + usermsg + "</p></span></div></div>");
			$("#converse").scrollTop($("#converse").prop("scrollHeight"));
			conv = $("#converse").html();
			ai(conv,usermsg);
      }
	});
	$("#chat-button").click(function(){
		$("#chat-box").animate({"right":"0px"});
	});
	$("#cancel").click(function(){
		$("#chat-box").animate({"right":"-300px"});
	});
});


document.forms.sendtext.addEventListener("submit", function (e) {
  e.preventDefault();

  var text = this.elements.text.value;
   $("#send").click();
});

document.forms.onkeyup = function(event) { // слушаете событие onkeyup  формы
  if (event.keyCode == 13) { //  коли enter - дёргаете вашу штатную функцию отправки
    buttonOtprav2();
  }
};

function buttonOtprav2() {
  console.log('enter is firing');
  event.preventDefault();
}



Смысл:
Вводим в input запрос, jquery запрашивает /get.php?q=Запрос и возвращает в список сообщений результат.
В get php список доступных команд и каждой команде соответствует выполнение скрипта например:
Привет => include '/script/privet.php'
Пока => include '/script/poka.php'


Всё отлично работало до тех пор пока я не стал внедрять Javascript (да и вообще html код) в privet.php и poka.php
Ну например privet.php
<?php
блаблабла
?>
<script>
alert('бла бла бла')
</script>


При прямых запросах через браузер /get.php?q=Привет и /get.php?q=Пока всё пашет нормально. Привет отрабатывает alert, а Пока отрабатывает свой скрипт
НО!
Когда пишем Привет в input (/get.php?q=Привет возращается через jquery) тоже отрабатывает, НО при обращении к следующей команде "Пока" - скрипт из предыдущего запроса продолжает отрабатываться.
И так при любых запросах в input ПОКА НЕ ПЕРЕЗАГРУЗИТСЯ СТРАНИЦА

Есть идеи ребят?...Всю голову уже поломал)
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Sesil_B
Идеи есть - разобраться с тем как работает javascript
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект