繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM