gpt4 book ai didi

javascript - 使用ajax从javascript传递数据并将其保存到数据库

转载 作者:行者123 更新时间:2023-11-29 19:45:51 24 4
gpt4 key购买 nike

大家好,我目前有一个网站,可以让用户搜索网站,我想保存这些搜索词以及每个搜索词在数据库中的搜索次数。为此,我创建了一个包含 2 列搜索的表,其中 varchar(30) 和值 int(30) 搜索设置为唯一,以便实例设计的术语不会填充两行,但是当我运行程序时什么也没有正在保存到数据库中,我想知道你们是否可以提供帮助。

JavaScript

function performSearch() {
var searchURL = "http://api.lmiforall.org.uk/api/v1/soc/search?q=";
var searchTerms = $('#searchterm').val();
var searchReady = searchTerms.toLowerCase();
$.ajax({
type: "POST",
url: 'findfavourites.php',
data: {searchReady : searchReady},
success: function(data)
{
alert("success!");
}
});
$('#soctable tbody').empty();
$.getJSON(searchURL + searchReady, function(results) {
results.forEach(function (result) {
var row = $("<tr></tr>");
var codeCell = $("<td></td>");
var titleCell = $("<td></td>");
var descriptionCell = $("<td></td>");
var qualificationsCell = $("<td></td>");
var tasksCell = $("<td></td>");
codeCell.html(result.soc);
titleCell.html(result.title);
descriptionCell.html(result.description);
qualificationsCell.html(result.qualifications);
tasksCell.html(result.tasks);
row.append(codeCell);
row.append(titleCell);
row.append(descriptionCell);
row.append(qualificationsCell);
row.append(tasksCell);
$('#soctable tbody').append(row);
});
});

}


$(function() {
// when the page is loaded
$('#dosearch').on('click', performSearch);
});

PHP

<?php

include 'includes/dbConnection.php';
if(isset($_POST['searchReady']))
{
$uid = $_POST['searchReady'];
$value='1';
$query=$conn->prepare("INSERT INTO favourites VALUES ('$uid','$value') ON DUPLICATE KEY UPDATE value = VALUES(value + 1");
$query->execute();
$conn = null;
}
?>

如有任何帮助,我们将不胜感激,提前致谢。

编辑

@PHPglue

我确信您正在询问 getjson 返回结果的页面,如果是的话,这里是 html 页面

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, intial-scale=1">
<title>Homepage</title>
<link href="styleSheet.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery-3.1.1.js"></script>
<script type="text/javascript" src="soc.js"></script>
</head>

<body>
<div id="page">
<nav>
<ul>
<li><a href="index.html">Home Page</a></li>
<li><a href="careers.html">Careers</a>
<ul>
<li><a href="#">Careers and Apprenticeships</a></li>
</ul>
</li>
</ul>
</nav>
<header>
<h1><u>Careers and Apprenticeships</u></h1>
</header>
<div class="container">
<div class="row">
<div class="col-sm-12">
<input class="form control" type="text" id="searchterm" placeholder="Put your search term here...">
<button class="btn btn-primary" id="dosearch">Search!</button>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-sm-12">
<table class="table table-striped" id="soctable">
<thead>
<tr>
<th>SOC Code</th>
<th>Job Title</th>
<th>Description</th>
<th>Qualifications</th>
<th>Tasks</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<footer>
</footer>
</body>
</html>

编辑2

大家好,我发现 ajax 正在工作,问题是由 ON DUPLICATE KEY UPDATE 引起的,任何人都可以检查语法并告诉我是否发现任何问题。正如我上面所说,当搜索相同的术语时,我希望该值更新为 2,依此类推。

最佳答案

尝试将 sql 行修改为:

$query=$conn->prepare("INSERT INTO favourites 
VALUES ('$uid','$value')
ON DUPLICATE KEY UPDATE value = value + 1");

希望这有帮助:)

关于javascript - 使用ajax从javascript传递数据并将其保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40986883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com