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 返回