javascript - 使用AJAX onclick函数返回PHP Mysql查询

标签 javascript php mysql ajax

因此,过去几天我一直在寻找各种来源来回答我的问题,但没有发现任何对我有用的信息。我将在序言中进一步说,关于 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);
?>

我并不是在寻找有人为我工作,但我确实需要一些指导。使这项工作有效的适当方法是什么?我的代码是不是非常错误?我是否完全忽略了这一点?拜托,我真的非常感谢有人能给我的任何帮助!

附注我刚刚完成了对其他几个类似问题的审查,但这些问题似乎都没有帮助。要么从来没有一个关于什么对他们有效的结论性结果,要么当我尝试时该解决方案不起作用。

最佳答案

试试这个:
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;
        }
    }); 

关于javascript - 使用AJAX onclick函数返回PHP Mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237156/

相关文章:

javascript - 解决一个 promise 中的多个 promise

mysql - 相关键/值表索引/搜索

MySQL 用另一个值替换结果值

javascript - 如何合并ajax div

javascript - ajax 不在 for 循环内工作

使用数组和 substr 的 PHP 随机数生成器

php - 抓取 PHP 文件中特定标签之间的文本

php - MySql 更新上的投票系统将不起作用

javascript - jQuery - 使用多个数据搜索选择器

php - mysqli_fetch_assoc 循环不从数据库写入任何内容