1

以前のスレッドでこれを探したので、回答があった場合は申し訳ありません。私のjavascriptは次のとおりです.dataパラメータはMySQLデータベースのテーブルを参照する文字列です:

    getData("UKnatgas");

function getData(data){
$.getJSON("service.php?action="+data, function(json) {              
    $.each(json.UKnatgas,function() {
       var info = this.UKnatgas;                    
                $('#UKnatgas').append( info );
    });
});
}

まず、文字列 "UKnatgas" をサブ $.each 関数に渡し、次のようにします。

$.each(json.data,function() {
       var info = this.data;                    
                $('#data').append( info );
    });

しかし、これはうまくいきませんか?理由を教えてください。

2 番目の部分は、php ファイル内の「UKnatgas」のすべてのインスタンスを取り除くことです。

  if($_GET){
if($_GET['action'] == 'UKnatgas'){
    $query = "SELECT UKnatgas FROM UKnatgas order by Date DESC Limit 1 ";
    $result = db_connection($query);

    $UKnatgas = array();

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        array_push($UKnatgas, array('UKnatgas' => $row['UKnatgas']));
    }
    echo json_encode(array("UKnatgas" => $UKnatgas));
    exit;
    }
}

要約すると、関数 getData(data) を文字列で初期化し、それが javascript 関数に伝播され、次に php ファイルに伝播されるようにしたいと思います。これは可能ですか?

ありがとう!

4

1 に答える 1

0

PHP は簡単ですが、ユーザーが編集可能な文字列を入力する際に​​、何らかのエラー チェックを行い、ハッキングの試みをチェックすることさえできます。許してMySQL Injectionしまうこともあるので注意が必要です。

可能な場合は、可能な限り使用してくださいmysql_real_escape_string。詳細については、リンクを参照してください: http://www.php.net/manual/en/function.mysql-real-escape-string.php

if($_GET['action']){
    $query = "SELECT `".$_GET['action']."` FROM `".$_GET['action']."` order by Date DESC Limit 1 ";
    $result = db_connection($query);

    $actionArray = array();

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        array_push($actionArray, array($_GET['action'] => $row[$_GET['action']]));
    }
    echo json_encode(array($_GET['action'] => $actionArray));
    exit;
}

正確にはわかりませんが、これはJSONで機能するはずです

$.each(json, function(key, val) {
    $('#'+data).append( val );
});

http://api.jquery.com/jQuery.getJSON/

あなたのケースでテストしましたが、データにアクセスするには次のことを行う必要があります。現在、これはJSONを連想配列として使用していますが、それ以外の方法で100%使用しているわけではありません。

function getData(data) { 
    $.getJSON("service.php?action="+data, function(json) { 
        $.each(json[data], function() { 
            var info = this[data];
            $('#'+data).append( info ); 
        }); 
    });
}
于 2012-05-01T20:36:08.603 に答える