ajax 和 php:如何从数据库中选择变量并使用 ajax 插入数据库

Posted

技术标签:

【中文标题】ajax 和 php:如何从数据库中选择变量并使用 ajax 插入数据库【英文标题】:ajax and php: how to select variables from database and insert in database using ajax 【发布时间】:2015-05-12 08:46:03 【问题描述】:

我真的从来没有这样做过,我很沮丧,因为我不确定它是如何组合在一起的。我有一个函数,我想调用我的 php(一个 php 文件从数据库中选择信息,第二个文件插入到数据库中)......我需要以我的网站设置方式使用 ajax,但我不知道如何从和向 php 文件传递​​数据。

在第一个 .js 文件中:

q1LoadVar();

这是我目前在第二个 .js 文件中的 ajax 函数(不工作):

//ajax code has been edited here since original post:

function q1LoadVar() 
alert("called"); //works!
$.get( "q1LoadVar1.php", function( data ) 

console.log(data); //nothing happens!
// alert(data); //nothing happens!

, "json" );


这是我在 q1LoadVar1.php 中的代码,我想从中选择数据并能够在我的 html 中填充文本区域:

/*works when I type this file path directly into the url; 
but the file is not communicating back to the ajax function on the 
.js file that is calling it*/ 

<?php   
$config = parse_ini_file('../config.ini'); 
$link = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);

if(mysqli_connect_errno())  
echo mysqli_connect_error();  
  

echo '<script type="text/javascript">alert("working from php!");</script>';

$query = "SELECT * FROM Game1_RollarCoaster";
$result = mysqli_query($link, $query);

while ($row = mysqli_fetch_array($result)) 
$newRow[] = $row;


$json = json_encode($newRow);
echo $json; //works on php file directly!

/*while ($row = mysqli_fetch_array($result)) 
echo $row[Q1_AnswerChoosen];
*/

mysqli_free_result($result);
mysqli_close($link);

?> 

有人可以帮助我了解如何使这一切协同工作吗?谢谢你,克里斯汀

【问题讨论】:

您的控制台是否有任何错误?也可能是响应错误或 PHP 错误。尝试在 PHP 文件的顶部包含 `error_reporting(E_ALL); ini_set('display_errors', 1);`.您在控制台中的响应可能会返回您面临的错误类型。 您的 INSERT 缺少 VALUES。 dev.mysql.com/doc/en/insert.html - 为了一件事。 另外,mysqli_error($conn) 应该是 mysqli_error($link) 我编辑了上述问题,专注于从数据库中选择的 ajax 和 php。当我运行“q1LoadVar1.php”文件时 - php代码可以工作,但是当使用上述ajax调用时它当然不会运行......当我运行ajax时根本没有任何反应......不知道如何测试它.. 那么,您对q1LoadVar 的函数调用在哪里?而且你有语法错误。检查你的控制台(f12) 【参考方案1】:

您可以使用 php 从 ajax 检索发布数据

$_POST['action']
//in your case will return: test

要将数据返回到 ajax,您需要使用 echo

如果成功:回调函数没有被调用尝试删除datatype: 'json'

我也认为你需要回显$newrow 而不是$row

如果这仍然不起作用,您可以使用error: 回调函数捕获错误以查看问题所在。

尝试从一个简单的请求开始,然后从那里开始工作。

$(document).ready(function() 

    $.ajax(
        type: "POST",
        url: "yourphp.php",
        data: simplestring: "hi",
        success: function(result)
            alert(result);
        
    );
);

和你的php.php

<?php
$simplestring = $_POST['simplestring'];
echo $simplestring;

【讨论】:

好的,试一试...我会写回我的结果 Georg - 我更改了 ajax 请求并将其改为 $.get 所以我不再有数据类型(我复制了 Jquery API 中的示例).. 但是 ajax 调用带有“ get" 似乎也没有工作......警报(数据)没有返回......但是单独运行时的 php 文件会从数据库中回显正确的信息。 (顺便说一句:我确实像你建议的那样改变了 $newrow 的东西......我认为这更接近让它工作......尽管让它工作,但仍然缺少 ajax 请求的一些东西:( 更新:在 php 页面上添加了警报...当然,当 php 文件从 url 直接运行时,会出现警报,但是当 ajax 尝试调用 php 文件时它不会出现,因此 ajax 函数是甚至没有调用 php 页面......并且文件在同一个文件夹中...... 我在想,也许我的问题是我从一个函数中调用了 ajax,它应该附加到一个元素上...... 我想调用我的 php 脚本来定位数据库中的特定变量,以便我可以决定要“取消隐藏”页面上的哪些元素....所以也许 ajax 不正确让 php 运行的方法....但是我如何在数据库上运行我的查询,然后让我的页面读取结果并用它们做些什么??

以上是关于ajax 和 php:如何从数据库中选择变量并使用 ajax 插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ajax 和 Jquery 从 PHP 数据库中提取信息,并使用该信息填充元素?

php - Laravel:如何在从下拉列表中选择更改后加载 Ajax 数据?

codeigniter php 和 jquery - 如何从多个表中获取数据并通过 ajax 返回

如何在 laravel php 中使用 ajax 根据日期范围从 mysql 数据库中检索数据?

将javascript变量传递给php [重复]

使用触发 javascript 验证的 POST 表单和 AJAX 登录到 PHP 文件。无法将数据存储到 PHP