1
...
success: function (reqCode) {
            if (reqCode['error_code'] == 1) {
                //Generiere Tabelle     
                $(".done").html( 
                    '<p class="bold center"><?php echo "Besucher ".$month_name[' + reqCode['month'] + ']." ".' + reqCode['year'] + '; ?></p>'
                    '<canvas id="cvs" width="680" height="250">[No canvas support]</canvas>'
                    '<script>'
                        'chart = new RGraph.Line("cvs", ' + reqCode['data_string'] + ');'
                        'chart.Set("chart.tooltips", ' + reqCode['labels_string'] + ');'
                        'chart.Set("chart.tooltips.effect", "expand");'
                        'chart.Set("chart.background.grid.autofit", true);'
                        'chart.Set("chart.gutter.left", 35);'
                        'chart.Set("chart.gutter.right", 5);' 
                        'chart.Set("chart.hmargin", 10);' +
                        'chart.Set("chart.tickmarks", "circle");'
                        'chart.Set("chart.labels", ' + $reqCode['labels_tooltip'] + ');'
                        'chart.Draw();'
                    '</script>'
                );      
                $('.done').fadeOut('slow'); 
                $('.done').fadeIn('slow');
            }   
}   

すべての改行に独自の「..」が必要な理由はわかりません。とにかくそれは機能していません。APIリファレンスを調べましたが、何も役に立ちませんでした:(

編集:私の2番目の質問について:

これがJSONの応答です。

$response['error_code'] = '1'; 
    $response['data_string'] = "[" . join(", ", $data) . "]";
    $response['labels_string'] = "['" . join("', '", $labels) . "']";
    $response['labels_tooltip'] = "['" . join("', '", $data) . "']";
    $response['month'] = $month_name[$month];
    $response['year'] = $year;

    echo json_encode($response);
4

4 に答える 4

2

<script>そのタグに何か問題があるようですが、本当に?<script>そのタグを挿入する必要はありません。すでにJavaScriptを実行しています。これを行うだけです:

success: function (reqCode) {
    if (reqCode['error_code'] == 1) {
        var month_name = <?php echo json_encode($month_name); ?>;
        //Generiere Tabelle     
        $(".done").html( 
            '<p class="bold center">Besucher ' + month_name[reqCode['month']] + ' ' + reqCode['year'] + '</p>'+
            '<canvas id="cvs" width="680" height="250">[No canvas support]</canvas>'
        );

        var chart = new RGraph.Line("cvs", reqCode['data_string']);
        chart.Set("chart.tooltips", reqCode['labels_string']);
        chart.Set("chart.tooltips.effect", "expand");
        chart.Set("chart.background.grid.autofit", true);
        chart.Set("chart.gutter.left", 35);
        chart.Set("chart.gutter.right", 5); 
        chart.Set("chart.hmargin", 10);
        chart.Set("chart.tickmarks", "circle");
        chart.Set("chart.labels", reqCode['labels_tooltip']);
        chart.Draw();

        $('.done').fadeOut('slow'); 
        $('.done').fadeIn('slow');
    }   
}   

いくつかの構文エラーを修正しましたが、残っているものがないことを保証することはできません。JavaScriptコンソールでエラーを監視するだけです。

于 2012-05-24T23:50:07.043 に答える
1

次のように、クラスが実行されたコンテナ要素が必要です。

<div class="done" />

さらに、次のことを短くすることができます。

$('.done').html('..all the html..').fadeOut('slow').fadeIn('slow');

さらに、Vivin Paliathが言ったように、+を使用してhtml内のすべての文字列を連結する必要があります

'<a>'+
'asdsad'+
'</a>'

幸運を!

于 2012-05-24T23:44:43.450 に答える
1

+記号が必要です


success: function (reqCode) {
            if (reqCode['error_code'] == 1) {
                //Generiere Tabelle     
                $(".done").html('<p class="bold center"></p>'+
                    '<canvas id="cvs" width="680" height="250">[No canvas support]'+
                    '<script>'+
                        'chart = new RGraph.Line("cvs", ' + reqCode['data_string'] + ');'+
                        'chart.Set("chart.tooltips", ' + reqCode['labels_string'] + ');'+
                        'chart.Set("chart.tooltips.effect", "expand");'+
                        'chart.Set("chart.background.grid.autofit", true);'+
                        'chart.Set("chart.gutter.left", 35);'+
                        'chart.Set("chart.gutter.right", 5);' +
                        'chart.Set("chart.hmargin", 10);' +
                        'chart.Set("chart.tickmarks", "circle");'+
                        'chart.Set("chart.labels", ' + $reqCode['labels_tooltip'] + ');'+
                        'chart.Draw();'+
                    ''
                );      
                $('.done').fadeOut('slow'); 
                $('.done').fadeIn('slow');
            }   
}  
于 2012-05-24T23:47:33.343 に答える
0

関数に単一の文字列を渡す必要がありhtml()ます。何かのようなもの:

$(".done").html("<p>hello</p><p>goodbye</p>")

複数の文字列を組み合わせる必要がある場合は、次のような文字列連結を使用する必要があります。

var combinedString = '<p>hello</p>' + '<p>goodbye</p>'
于 2012-05-24T23:45:47.787 に答える