使用jquery yes或no vote将数据插入mysql

时间:2014-09-29 01:59:36

标签: php jquery mysql ajax jquery-ui

如何通过添加用户选项来更新数据库?我为此目的在数据库中有两个字段,当用户单击是时,它会更新(有用)字段和(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();
  });
});

2 个答案:

答案 0 :(得分:0)

您无法从客户端浏览器直接使用JavaScript连接mySQL数据库。事件,如果您真的不想这样做,因为您必须将mysql登录凭据包含在提供给客户端计算机的JavaScript中。

当然,您可以在JavaScript中使用类似LocalStorage的数据库,但这些数据库位于客户端计算机上。如果我说得对,那不是你想要的。

您必须将数据发送到服务器上的脚本,然后将其插入到mySQL数据库中。如你所说,你不喜欢浏览器重新加载只是提交表单不是一个选项。在这些情况下使用AJAX。您将找到几个如何使用AJAX将数据与JavaScript / JQuery一起发送到服务器的教程。

在服务器端,您可以使用php脚本处理。您发布到问题的代码不是PHP而是简单的HTML。 Fred -ii-发布了一些示例SQL语句来增加列。我建议您将PHP PDOmysql 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";
 }
}
?>