返回数据集在每个 HTML 字符后都有 /


return data set has / after every html character

我从Ajax调用中获得了数据。在服务器端,我将字符串编码为 JSON 并发送数据。但我得到的数据如下

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

实际上,它不应该显示html字符。

我使用 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
                // });
            }
        });
    });

JSON 旨在通过 JavaScript 进行解析,但许多浏览器(尤其是旧浏览器(使用 </ 作为"脚本块结束"标记(与较新的浏览器相反,它们足够聪明,可以查找不在字符串中的</script>标记(。

' 逃脱了 / ,它本身没有真正的目的('/因为它没有特殊含义,并且在解析时变得/(,但它确实分解了</以允许 JSON 工作。