gpt4 book ai didi

php - Ajax 代码无法正常工作,即使它(我认为)是正确的

转载 作者:行者123 更新时间:2023-11-30 22:08:43 24 4
gpt4 key购买 nike

这样做的功能是当用户点击按钮时,它会执行Ajax代码,然后获取输入的值并将其发送到PHP文件,然后将其发送回Ajax代码以显示消息来自 MySQL 表。

我尝试过更改我的代码、更改 div id、更改语法、清除代码块,但似乎都没有用。

AJAX

<script>
$(document).ready(function() {
$("#snd").click(function() {
var msgg = $('input[name=message]').val();
$.ajax({
type: "POST",
url: 'automatedchat_func.php',
data: {newmsg: msgg},
success: function(data) {
$("#conversation").html(data);
}
});
});
});
</script>

HTML UPDATED

<div class="convo">
<div class="convo_field" id="conversation">



</div>
<div class="obj">
<div class="txtbox">
<form method="POST">
<input type="input" id="msg" name="message" placeholder="Type exact or related word(s) of your question"/>
</form>
</div>
<div class="but_send"><button id="snd" name="send">SEND</button></div>
</div>
</div>

PHP UPDATED

<?php
include 'database/connect.php';

session_start();


$sql = "SELECT * FROM ai WHERE keywords LIKE '%$_POST[message]%' OR '$_POST[message]%_' OR '$_POST[message]_'";
$result = $conn->query($sql);
if ($row = $result->fetch_assoc()) {
echo "Hi ". $_SESSION['name'] .".<br> " . $row['message'];
}

?>

最佳答案

建议更改(在评论中):-

<div class="convo">
<div class="convo_field" id="conversation">
</div>
<div class="obj">
<div class="txtbox">
<input type="input" id="msg" name="message" placeholder="Type exact or related word(s) of your question"/>
</div><!-- form not requird -->
<div class="but_send"><button id="snd" name="send">SEND</button></div>
</div>
</div>

<!-- Add jquery library so that jquery code wiil work -->

<script>
$(document).ready(function() {
$("#snd").click(function() {
var msgg = $('#msg').val(); // id is given so use that, its more easy
$.ajax({
type: "POST",
url: 'automatedchat_func.php',
data: {newmsg: msgg},
success: function(data) {
$("#conversation").html(data);
}
});
});
});
</script>

automatedchat_func.php(必须在上述 html 文件所在的同一工作目录中)

<?php
error_reporting(E_ALL);// check all type of error
ini_set('display_errors',1);// display all errors
include 'database/connect.php';
session_start();
$final_result='';//a variable
if(isset($_POST['newmsg']) && !empty($_POST['newmsg'])){// its newmsg not message
$message = $_POST['newmsg'];
$sql = "SELECT * FROM ai WHERE keywords LIKE '%$message%' OR '$message%' OR '$message'"; // check the change ere
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) { // while needed
$final_result .="Hi ". $_SESSION['name'] .".<br> " . $row['message']."<br>";
}
}else{
$final_result .="Hi please fill the input box first";
}
echo $final_result; // send final result as response to ajax
?>

注意:- 您的查询仍然容易受到 SQL 注入(inject)攻击。所以阅读prepared statements并使用它们

关于php - Ajax 代码无法正常工作,即使它(我认为)是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40826792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com