2015-09-25 75 views
0

我正在使用jquery ajax在选择框中选择某个值时在标签内显示一些值。但我想要在标签中显示的值是一些不同的字体,我认为这就是为什么值以黑色四方框作为背景的一些问号字符显示[#nb-am-h #w]。如何避免这种情况:从通过jquery ajax方法提取的值中提取字体字符

//Javascript code 
<script type="text/javascript"> 
    $("document").ready(function(){ 
     var id=$(this).val(); 
     //alert(id); 

     $.ajax({ 
      type: "POST", 
      url: "ajax.php", 
      data: {id:id}, 
      cache: false, 
      success: function(html){ 
       //alert(html); 
       $("#malid").show(); 
       /*$('#malid').css("font-family", "malfont");*/ 
       $("#malid").html(html); 
      } 
     }); 
    ); 

HTML代码

<div> 
    <label>Book</label> 
    <select id="bookname"> 
    <?php 
     for($i=0;$i<$count;$i++) 
     { 
     ?> 
      <option value="<?php echo $bookid[$i];?>"><?php echo $book_name[$i];?> </option> 
     <?php 
     } 
    ?> 
    </select> 
    <label id="malid" style="display:none;font-family: 'malfont';"></label> 
</div> 

//Php code inside ajax.php 
if(isset($_POST['id'])) 
{ 
    $id=$_POST['id']; 

    $book_results = $mysqli->query("SELECT book FROM booktable where book_id='$id'"); 
    $row = $book_results->fetch_assoc(); 
    $book = $row['book']; 
    echo $book; 
} 
+0

你的情况是比较含糊的“一些价值”,“有些不同字体“,这听起来是李解决方案是,只需确保所有内容都使用相同的字体。所以......你能否创造一个具体的例子来说明我们可以看到的问题? –

+0

在重新阅读时,听起来您正在提取的HTML包含自己的字体样式,因此覆盖'#malid'中的样式属性,是吗? –

+0

没有它没有超载..我觉得字符集或内容类型有问题 – Nathan

回答

0

我得到了我的问题的解决方案。我只是包含在我的Ajax页面下面的线,现在是工作的罚款。

header('Content-Type: text/html; charset=ISO-8859-15'); 
0

您可以检查出(使用网络选项卡或代理)的响应就是从AJAX调用?它在你的数据库/连接中可能是不好的编码。

而且,请注意,这AJAX端点是脆弱的SQL注入(你不是逃避用户的输入$ _ POST [‘身份证’]

欲了解更多信息,请访问:https://en.wikipedia.org/wiki/SQL_injection#Technical_implementations