如何通过添加用户选项来更新数据库?我为此目的在数据库中有两个字段,当用户单击是时,它会更新(有用)字段和(not_useful),如果单击没有按钮。我是javascript的新手,所以请耐心等待! :)我提前感谢任何帮助。
PHP
<?php
require 'db/conn.php':
$id = (int)$_GET['id'];
if($result = $db->query("SELECT * FROM table_user WHERE table_user_id = $id")){
if($result->num_rows){
while($row = $result->fetch_assoc()) {
echo "
<div class='rating'>
<center>
<p>Are you alrite " . $row['table_user_name'] . "?</p>
<div>
<button type='button' id='yes'>Yes</button>
<button type='button' id='no'>No</button>
</div>
</center>
</div>
<div class='1' style='display:none;'>Text YES</div>
<div class='2' style='display:none;'>Text NO</div>
";
}
}
}
?>
JS
$(document).ready(function(){
$("#yes").click(function(){
$(".rating").hide();
$(".1").show();
});
$("#no").click(function(){
$(".rating").hide();
$(".2").show();
});
});
答案 0 :(得分:0)
您无法从客户端浏览器直接使用JavaScript连接mySQL数据库。事件,如果您真的不想这样做,因为您必须将mysql登录凭据包含在提供给客户端计算机的JavaScript中。
当然,您可以在JavaScript中使用类似LocalStorage的数据库,但这些数据库位于客户端计算机上。如果我说得对,那不是你想要的。
您必须将数据发送到服务器上的脚本,然后将其插入到mySQL数据库中。如你所说,你不喜欢浏览器重新加载只是提交表单不是一个选项。在这些情况下使用AJAX。您将找到几个如何使用AJAX将数据与JavaScript / JQuery一起发送到服务器的教程。
在服务器端,您可以使用php脚本处理。您发布到问题的代码不是PHP而是简单的HTML。 Fred -ii-发布了一些示例SQL语句来增加列。我建议您将PHP PDO与mysql driver一起使用,因为这有助于您防止出现安全问题。
答案 1 :(得分:0)
经过一番努力,我找到了解决方案。分享面临类似问题的人。这是我的解决方案。无论如何,玩得开心! ;)
我认为有一种更好的方法来组织JS脚本与管理sql脚本的php文件进行交互。如果有人想帮助优化它,欢迎。
PHP主
<?php
require 'db/conn.php':
$id = (int)$_GET['id'];
if($result = $db->query("SELECT * FROM table WHERE user_id = $id")){
if($result->num_rows){
while($row = $result->fetch_assoc()) {
echo "
<div class='rating'>
<center>
<p>Are you alrite " . $row['user_name'] . "?</p>
<div id='rating-div'>
<a href='#' id='yes' class='custom-btn'>Yes</a>
<a href='#' id='no' class='custom-btn'>No</a>
<input type='hidden' id='" . $id . "' />
</div>
</center>
</div>
";
}
}
}
?>
JS
$(function(){
$('#yes').on('click', function(e){
e.preventDefault();
var usr_id = $('#rating-div input').attr('id');
$.ajax({
url: 'db/rating-yes.php',
type: 'post',
data: {'action': 'rating', 'usr_id': user_id},
success: function(data, status){
if(data == "ok"){
$('.rating').html('<p>Nice!</p>');
}//end of if
},//end of success function
error: function(xhr, desc, err){
console.log(xhr);
console.log("Details: " + desc + "\nError: "+ err);
}
});//end of ajax
}); //end of onclick function
}); //end of main function
$(function(){
$('#no').on('click', function(e){
e.preventDefault();
var usr_id = $('#rating-div input').attr('id');
$.ajax({
url: 'db/rating-no.php',
type: 'post',
data: {'action': 'rating', 'usr_id': user_id},
success: function(data, status){
if(data == "ok"){
$('.rating').html('<p>Oh no! :(</p>');
}//end of if
},//end of success function
error: function(xhr, desc, err){
console.log(xhr);
console.log("Details: " + desc + "\nError: "+ err);
}
});//end of ajax
}); //end of onclick function
}); //end of main function
PHP评分 - 是
<?php
$rating = $_POST['action'];
$user_id = $_POST['usr_id'];
if($rating == "rating") {
$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('your_database');
if(mysql_query("UPDATE table SET useful = useful + 1 WHERE user_id = $user_id")){
echo "ok";
}
}
?>
PHP评级 - 否
<?php
$rating = $_POST['action'];
$user_id = $_POST['usr_id'];
if($rating == "rating") {
$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('your_database');
if(mysql_query("UPDATE table SET not_useful = not_useful + 1 WHERE user_id = $user_id")){
echo "ok";
}
}
?>