2013-07-16 20 views
0

我從Ajax調用中獲取數據。在服務器端,我將字符串編碼爲JSON併發送數據。 但我得到的數據如下返回數據集有/每個html字符後

" 
General abc\/def<\/h3> 
dsaa<\/td> 3<\/table><\/tbody> 
dfsa<\/td> 3<\/table><\/tbody> 
dsdsa<\/td> 2<\/table><\/tbody><\/div>" 

其實這是不應該顯示HTML charaters。

我使用Php和Jquery ajax。 我在哪裏可以做到這個錯誤?

更新代碼

function employee_deatils_search() { 

    global $wpdb; 

    $name=$_POST['user_name'];//retrive data from post array on form submitting 

    //main streams for a given user will be printed such a way that subjects are gruped by main stream.The order of the main streams are arranged according 
    //to the total of skill levels for each subject. 
    $stream_groupby=$wpdb->get_results("SELECT tab_subject.mai_stream, SUM(tab_skilllist.skill_level) AS total_skill 
           FROM `tab_users` 
           JOIN tab_skilllist ON tab_skilllist.user_id = tab_users.id 
           JOIN tab_subject ON tab_subject.id = tab_skilllist.subject_id 
           WHERE tab_users.first_name = '$name' and tab_users.employ = 1 
           GROUP BY tab_subject.mai_stream 
           ORDER BY total_skill DESC"); 
    //echo "<div id='accordion'>"; 
    foreach($stream_groupby as $value_str){        


    //printing subject information, skill level and subject main stream. 
    //user name and main stream will be passed as arguments. 
    $employee_subjects=$wpdb->get_results("SELECT tab_subject.subject, tab_subject.mai_stream ,tab_skilllist.skill_level FROM `tab_users` 
           JOIN tab_skilllist ON tab_skilllist.user_id = tab_users.id 
           JOIN tab_subject ON tab_subject.id = tab_skilllist.subject_id 
           WHERE tab_users.first_name = '$name' and tab_subject.mai_stream = '$value_str->mai_stream' 
           ORDER BY tab_skilllist.skill_level desc"); 
      //echo '<br>'; 
      $jason = '<h3 style="font-size:15px;">'; 
      $jason .= $value_str->mai_stream; 
      $jason .= '</h3>'; 
      $jason .= '<div >'; 
     foreach($employee_subjects as $key=> $value){ 

      $jason .= '<table><tbody>'; 
      $jason .= '<tr><td style="width:90%;font-size:14px;">'.$value->subject.'</td>'.'<td style="font-size:14px;">'.$value->skill_level;'</td></tr>'; 
      $jason .= '</table></tbody>'; 
      // echo '</br>';echo '</br>'; 

     } 
      $jason .= '</div>'; 
    } 
// echo json_encode($jason) ; 

    //echo '</div>'; 
    //wp_reset_query(); 
    die(); 
} // end theme_custom_handler 

下面是javascript代碼

$("#sendemp").click(function(e) { 
     e.preventDefault(); 
     var submit_val = $("#searchbox").val(); 
     //alert('submitval is ' + submit_val); 


     $.ajax({ 
      type : "POST", 

      url : "./wp-admin/admin-ajax.php", 
      data : { 
       action : 'employee_deatils_search', 
       user_name : submit_val 
      }, 
      success : function(data) { 
      //  alert('hhh'); 
       $('#accordion32').html(data); 
       $("tr:odd").css("background-color", "#F8F8F8"); 
       // $("#searchbox").autocomplete({ 
       // source: data 
       // }); 

      } 
     }); 

    }); 
+4

既然你沒有顯示任何你的代碼,我們怎麼能告訴你犯了什麼錯誤? – Barmar

+0

向我們顯示您的服務器端代碼。字符串看起來像你編碼的東西? – Lowkase

+1

這被編碼爲用作javascript文字。如果在這種情況下使用,它將自行修正。即'' – Orangepill

回答

1

JSON的目的是通過JavaScript來是可分析的,但許多瀏覽器(尤其是舊的)使用</爲「腳本結束塊「標記(而不是更新的瀏覽器,它們足夠聰明,可以查找不在字符串中的</script>標記)。

\逃脫/,供應本身沒有什麼實際意義(因爲\/沒有特殊的意義,並分析在剛成爲/),但它確實打破了</允許JSON工作。

相關問題