Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Post-Mood-Voting-Funktion

PHP-Post-Mood-Voting-Funktion

巴扎黑
巴扎黑Original
2017-09-14 10:21:441172Durchsuche

In diesem Artikel werden hauptsächlich Beispiele für die Mood-Voting-Funktion von PHP vorgestellt (Quellcode im Anhang), die einen gewissen Referenzwert haben

Beim Durchsuchen der Nachrichtenseite oder anderer Seiten wird es Gefühle geben Lesen, wie zum Beispiel großartig, ruhig, Sojasauce, komm schon, betrügen usw. Lassen Sie die Leser es bewerten, um zu sehen, ob es ihnen genauso geht wie den anderen Lesern. Sehr nette Interaktion!

Jetzt herunterladen: Mood_jb51.rar

Dieser Artikel erfordert Kenntnisse im Zusammenhang mit JQuery, MySQL und Ajax, wird jedoch nicht oft verwendet. Dieser Artikel enthält drei Dateien: index.html, mood.php, sql.php

  • index.html, Seitenanzeige und Anforderung von Ajax-Daten

  • mood.php, die Hintergrunddatei, verarbeitet die Daten aus der Get-Anfrage und gibt die Daten zurück

  • sql.php, die Datenbankdatei, speichert die Datenbankinformationen

Kommen wir direkt zum Code.

index.html

Erste Import-JQuery


//cdn.bootcss.com/jquery/1.7.2/jquery.min.js

Wenn das Dokument geladen wird Fordern Sie einfach die Anzahl der Wählerdaten an (ajax-get)


$.ajax({
  type: 'GET',
  url: 'mood.php',
  cache: false,
  data: 'id=1',
  dataType: 'json',
  error: function(){
    alert('出错了!');
  },
  success: function(json){
    if(json){
      $.each(json,function(index,array){
        var str = "<li><span>"+array[&#39;mood_val&#39;]+"</span><p class=\"pillar\" style=\"height:"+array[&#39;height&#39;]+"px;\"></p><p class=\"face\" rel=\""+array[&#39;mid&#39;]+"\"><img src=\"images/"+array[&#39;mood_pic&#39;]+"\"><br/>"+array[&#39;mood_name&#39;]+"</p></li>";
        $("#mood ul").append(str);
      });
    }
  }
});

Geben Sie sie zurück und fügen Sie sie zur Webseite hinzu. Klicken Sie dann auf den Ausdruck Logik und Ajax in den Hintergrund


$(".face").live(&#39;click&#39;,function(){
  var face = $(this);
  var mid = face.attr("rel");
  var value = face.parent().find("span").html();
  var val = parseInt(value)+1;
  $.post("mood.php?action=send",{moodid:mid,id:1},function(data){
    if(data>0){
      face.prev().css("height",data+"px");
      face.parent().find("span").html(val);
      face.find("img").addClass("selected");
    }else{
      alert(data);
    }
  });
});

Auf diese Weise hat die gesamte Rezeption ihre Arbeit erledigt

mood.php

Importieren Sie zunächst die Datenbankdatei sql.php


include_once("sql.php");

Diese Datei übernimmt den Kern der gesamten Funktion, die Verarbeitung der Datenbank, Cookies ...

1. Verarbeitung des Codes zur Ermittlung der Wählerzahl


$mname = explode(&#39;,&#39;,$moodname);//心情说明
$num = count($mname);
$mpic = explode(&#39;,&#39;,$moodpic);//心情图标
$id = (int)$_GET[&#39;id&#39;];
$query = mysql_query("select * from mood where id=$id");
$rs = mysql_fetch_array($query);
if($rs){
  $total = $rs[&#39;mood0&#39;]+$rs[&#39;mood1&#39;]+$rs[&#39;mood2&#39;]+$rs[&#39;mood3&#39;]+$rs[&#39;mood4&#39;];
  for($i=0;$i<$num;$i++){
    $field = &#39;mood&#39;.$i;
    $m_val = intval($rs[$field]);
    $height = 0; //柱图高度
    if($total && $m_val){
      $height=round(($m_val/$total)*$moodpicheight); //计算高度
    }
    $arr[] = array(
      &#39;mid&#39; => $i,
      &#39;mood_name&#39; => $mname[$i],
      &#39;mood_pic&#39; => $mpic[$i],
      &#39;mood_val&#39; => $m_val,
      &#39;height&#39; => $height
    );
  }
  echo json_encode($arr);
} else {
  for($i=0;$i<$num;$i++){
    $arr[] = array(
      &#39;mid&#39; => $i,
      &#39;mood_name&#39; => $mname[$i],
      &#39;mood_pic&#39; => $mpic[$i],
      &#39;mood_val&#39; => 0,
      &#39;height&#39; => 0
    );
  }
  echo json_encode($arr);
}

2. Verarbeitung der Abstimmungsfunktion


$id = (int)$_POST[&#39;id&#39;];
$mid = (int)$_POST[&#39;moodid&#39;];
if($mid<0 || !$id){
  echo "错误";
  exit;
}

$havemood = chk_mood($id);
if($havemood==1){
  echo "您已表达过了";exit;
}
$field = &#39;mood&#39;.$mid;
//查询是否有这个id
$result = mysql_query("select 1 from mood where id=&#39;{$id}&#39;");
$row = mysql_fetch_array($result);
if(is_array($row)){
  $query = mysql_query("update mood set ".$field."=".$field."+1 where id=".$id);
  if($query){
    setcookie("mood".$id, $mid.$id, time()+3600);
    $query2 = mysql_query("select * from mood where id=$id");
    $rs = mysql_fetch_array($query2);
    $total = $rs[&#39;mood0&#39;]+$rs[&#39;mood1&#39;]+$rs[&#39;mood2&#39;]+$rs[&#39;mood3&#39;]+$rs[&#39;mood4&#39;];
    $height = round(($rs[$field]/$total)*$moodpicheight);
    echo $height;
  }else{
    echo -1;
  }
} else {
  mysql_query("INSERT INTO mood(id,mood0,mood1,mood2,mood3,mood4)VALUES (&#39;{$id}&#39;,&#39;0&#39;,&#39;0&#39;,&#39;0&#39;,&#39;0&#39;,&#39;0&#39;)");
  $query = mysql_query("update mood set ".$field."=".$field."+1 where id=".$id);
  setcookie("mood".$id, $mid.$id, time()+3600);
  echo $moodpicheight;
}

Diese Datei ist sehr einfach, sie befasst sich im Wesentlichen mit der Datenbank, und die Logik ist nicht sehr kompliziert. Sie können vorbeikommen und selbst einen genaueren Blick darauf werfen.

sql.php

Eine allgemeine Datenbankinformationsspeicherdatei, Datenbank-IP, Konto, Passwort, Datenbankname usw.


$host="localhost";
$db_user="root";
$db_pass="";
$db_name="demo";
$timezone="Asia/Shanghai";

$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");

header("Content-Type: text/html; charset=utf-8");

Alle Kerncodes wurden bisher veröffentlicht, daher überspringe ich sie. Wenn Sie sie benötigen, laden Sie sie herunter und werfen Sie einen Blick darauf Übrigens ist es immer noch da. Es gibt eine Datenbank, bitte posten Sie auch die DDL

Das obige ist der detaillierte Inhalt vonPHP-Post-Mood-Voting-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn