[英]Return PHP Mysql query using AJAX onclick function
因此,最近几天我一直在寻找各种资源来回答我的问题,因此没有发现对我有用的东西。 我将通过说关于PHP和Javascript的开头进一步介绍这一点,就像一周前一样。 我也了解,可能会有更好的方法来格式化/编写我将要发布的代码,所以请多多包涵! :)
本质上,我试图将页面名称play.php与AJAX结合使用,以将MYSQL查询回显到某些页面元素内的页面上。
因此,main.js的代码直接链接到play.php。 我尝试了在各种答案中看到的三种不同方式,但是没有获得所需的信息。 我要么没有回应,要么全部都不确定。
function selectChar(uname, cname)
{
var data = {
username : uname,
charname : cname
};
$.ajax({
data : data,
type : 'Get',
url : 'start.php',
dataType:"json",
success : function (result) {
var data_character = JSON.parse(result);
var cnamediv = document.getElementById('charactername');
cnamediv.innerHTML = "";
cnamediv.innerHTML = data_character[0].name;
}
});
}
我最常看到的上方是今天早些时候发现的下方。 当我尝试调用数组时,我得到的是不确定的。
function selectChar(uname, cname)
{
$.get("start.php?username="+uname+"&charname="+cname).done(function(data_character){
var cnamediv = document.getElementById('charactername');
cnamediv.innerHTML = "";
cnamediv.innerHTML = data_character[0].name;
});
}
最后是查询数据库并回显数据的PHP代码。
<?php
$conn = new mysqli($hostname,$username,$dbpassword, $dbname);
if(!$conn) {
die('Could not connect: ' . mysql_error());
}
$username = $_GET['username'];
$charname = $_GET['charname'];
$sql = "SELECT `id`, `username` FROM `users` WHERE `username` ='$username'";
$result = mysqli_query($conn,$sql);
//Send the array back as a JSON object
echo json_encode($result);
?>
我不是要找人为我工作,但我确实需要一些指导。 什么是使这项工作合适的方法? 我的代码非常不正确吗? 我是否完全错过了这个方面? 拜托,我真的非常感谢有人能给我任何帮助!
PS我刚刚完成了其他几个类似问题的复习,但似乎没有帮助。 关于对他们有用的解决方案,永远没有最终结果,或者当我尝试解决方案时,没有解决方案。
尝试这个:
php获取帖子并返回json_encode
if(!$conn) {
die('Could not connect: ' . mysql_error());
}
$username = $_POST['username'];
$charname = $_POST['charname'];
$sql = "SELECT `id`, `username` FROM `users` WHERE `username` ='$username'";
$result = mysqli_query($conn,$sql);
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
$rows[] = $r;
}
//Send the array back as a JSON object
echo json_encode($rows);
?>
JS ajax响应和请求
$.ajax({
data : data,
type : 'POST',
url : 'start.php',
dataType:"json",
success : function (result) {
console.log(result);
document.getElementById('charactername').innerHTML = result[0].username;
}
});
嘿,洛根(Logan),问题可能出在AJAX请求的发送方式上。 尝试将processData属性添加到您的请求中并将其设置为false。 这只是意味着数据不会作为查询字符串读取,而是原始数据。
$.ajax({
data : data,
type : 'POST',
url : 'start.php',
dataType:"json",
processData: false,
success : function (result) {
console.log(result);
document.getElementById('charactername').innerHTML = result[0].username;
}
});
我还将尝试echo json_encode($ _ POST)来查看是否返回以下响应:
{username: "hello", charname: "hl"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.