Проблемы с определенными символами в jQuery / PHP - PullRequest
0 голосов
/ 12 ноября 2010

У меня проблемы с некоторыми символами после того, как я добавил в свой код jQuery.

http://www.blueskycouncil.com/login-form.php (логин: стек / это)

Когда я былпросто делаю все это в php, но теперь он странным образом преобразует некоторые символы.

Это код jQuery, который я использую:

<script type="text/javascript">

// Check to see if document is ready

$(document).ready(function () {

    // Set sort mode to Best        

    $.post("_db_index.php", 
        {sort_id: "best"},

            // Take data from _db_index.php and put it into the HTML
            function(output){
                $('#left').html(output).show();
        });

    });
        // Check to see whether user have voted on item before 
        function updateKarma(element, id, sortId){
          $.post("idea_karma.php", 
              {pagetype: "index", karmatype: "ideaspace", id: id, sort_id: sortId}, 

        function(output){
                element.parentNode.className="karma-btn_voted";
              element.parentNode.innerHTML="<span class=\"voted\">"+output+"</span>";
          });

              return false;
        }

        function viewMode(sortId){
            $.post("_db_index.php", 

                {sort_id: sortId},
                    function(output){
                    $('#left').html(output).show();

                    $.post("subnavigation.php", 
                        {sort_id: sortId},

                            function(output){
                            $('#base').html(output).show();
                        });


                    });




            };

                $(function(){  
                 $(".base a").hover(function(){  
                  $(this).children("span").fadeOut();  
                 }, function(){  
                  $(this).children("span").fadeIn();  
                 })    
                });

и в _db_index.php файл, он извлекает его вот так

<?php

// Start session

require_once('auth.php');
require_once('config.php');
require_once('db_open_select.php');

// Functions

include('trunctate_text.php');

$sort_id = $_POST['sort_id'];
$member_id = $_SESSION['SESS_MEMBER_ID'];

// Check for PHP Insert Hack
if(array_key_exists("sort_id",$_POST)){
    $sort_allowed = array("best","new","comments");
        if(in_array($_POST["sort_id"],$sort_allowed)){
            $sort_id = $_POST["sort_id"];
        }
}

echo "<div id=\"gradient\">";

        //If User selected Best Rated or if url is empty:
        if (empty($_POST) OR $sort_id == "best") {

            //Perform database query
             $result = mysql_query("SELECT * , (SELECT COUNT( 1 ) FROM comments C WHERE C.idea_id = I.id) AS COMMENTS, ( SELECT login FROM members M WHERE I.member_id = M.member_id ) as login FROM ideaspace I ORDER BY KARMA DESC", $connection); 
            $query = mysql_query("SELECT idea_id FROM vote_idea WHERE member_id = $member_id", $connection);


            //Create array with which ideas the current user has voted on already
                $user_voted_on_this = array();

                    while($row = mysql_fetch_assoc($query))
                        {
                         $user_voted_on_this[] = $row["idea_id"];
                        }

                //If User selected newest:
                } elseif ($sort_id == "new") {

                            $result = mysql_query("SELECT * , (SELECT COUNT( 1 ) FROM comments C WHERE C.idea_id = I.id) AS COMMENTS, ( SELECT login FROM members M WHERE I.member_id = M.member_id ) as login FROM ideaspace I ORDER BY DATE DESC", $connection); 
                            $query = mysql_query("SELECT idea_id FROM vote_idea WHERE member_id = $member_id", $connection);

                            //Create array with which ideas the current user has voted on already
                                $user_voted_on_this = array();

                                    while($row = mysql_fetch_assoc($query))
                                        {
                                         $user_voted_on_this[] = $row["idea_id"];
                                        } 

                        //If User selected most commented:                
                            } else {

                                if ($sort_id == "comments")

                                $result = mysql_query("SELECT * , (SELECT COUNT( 1 ) FROM comments C WHERE C.idea_id = I.id) AS COMMENTS, ( SELECT login FROM members M WHERE I.member_id = M.member_id ) as login FROM ideaspace I ORDER BY COMMENTS DESC", $connection); 
                                $query = mysql_query("SELECT idea_id FROM vote_idea WHERE member_id = $member_id", $connection);



                                    $user_voted_on_this = array();

                                        while($row = mysql_fetch_assoc($query))
                                            {
                                             $user_voted_on_this[] = $row["idea_id"];
                                            }  

                }

                if (!$result && !$query) {    
                    die("Database connection failed: " . mysql_error());
                }



        // 4. Use data from database
        while ($row = mysql_fetch_array($result)) {

            echo 
                "<dt id=\"idea\">";

                        if (in_array($row['id'],$user_voted_on_this)) {

                                        echo 
                                            "<div class=\"karma-btn_voted\">
                                                <span class=\"voted\">{$row['karma']}</span>
                                                    </div>";

                                                    } else { 

                                        echo 
                                            "<div class=\"karma-btn\">

                        <a href=\"javascript:void(0);\" onclick=\"return updateKarma(this,'{$row['id']}', '$sort_id')\"><img src=\"images/btn_lrg_karma.png\" alt=\"Alternative text\"><span class=\"voted\"><div class=\"newkarma\">{$row['karma']}</div></span></a>
                                            </div>";    

                            }

                                        echo    
                                            "<div class=\"textbox\">
                                                <P class=\"category\">" . $row['category'] . "</p>
                                                    <P class=\"headline\"> <a href=\"details_idea.php?itemid={$row['id']}\">" . $row['d_header']."</a></P>
                                                        <P>" . $shortdesc = myTruncate($row['d_description'], 220, " ") . "</p>" .
                                                            "<P class=\"name\">Submitted by " . $row['login'] . " " . date('D d Y', strtotime($row['date'])) . "<img src=\"images/comments.png\" align=\"center\"><a href=\"#\">". $row['COMMENTS'] ."</a></p>" .

                                                                    "</div>
                                                                        </dt></div>";


        }



?>


    <?Php
    require_once('db_close.php');
    ?>

Как я уже говорил, он работал нормально, когда был PHP, но теперь, когда я выбираю данные, он заменяет некоторые символы на ромб?значок персонажа.

Ответы [ 3 ]

2 голосов
/ 13 ноября 2010

- проблема с кодировкой, много вещей нужно проверить - Проблема UTF-8 при сохранении в mysql

1 голос
/ 13 ноября 2010

Ответ закодирован в cp1252, но ваша страница в UTF8

Исчезающий символ имеет десятичный код 146

Вы должны изменить кодировку перед отправкой ответа (или лучше перед тем, как вставить данные в базу данных).

mb_convert_encoding($str, "UTF-8", "CP1252");
0 голосов
/ 13 ноября 2010

Спасибо всем, что исправили

mysql_query ("SET NAMES utf8");в файле db_connection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...