質問: new google.maps.latlng( lax_map_params.latitude, csf_crime_map_params.longitude); 私のjavascript関数には、マップは機能します。 '39.01'を$atts[latitude]に、-76.02を$atts[longitude]に置き換えるにはどうすればよいですか。私はまだphpの範囲について学んでいます。ありがとうございました。
回答: あなたはいくつかの初期の(おそらくグローバルな)js var markers_array = [];を持つ必要があります。それからajaxコールバック関数を使ってマーカーをその配列にぶつけてください。スクリプトを登録する// define $root_url = plugin_dir_path(); // example path $ajax_nonce = 'your_nonce'; $ajax_nonce_val = 'your_val'; // ajax wp_register_script( 'json2', false, false, false, true ); wp_enqueue_script( 'json2' ); wp_enqueue_script( 'ajax-script' ,"{$root_url}js/ajax_json.js" // your ajax callback script that handles the request (inside a /js folder) ,array( 'json2' ) ,false ,true ); wp_localize_script( 'ajax-script' ,'ajax_object' // your main data object ,array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ,$ajax_nonce => wp_create_nonce( $ajax_nonce_val ) ) ); 初期のマーカー// inside some <script> part: you need the following php function to build your markers array: // this js array will be used by your custom build markers js function to build the initial markers. it can also be used to update markers and overlays. var mapsinitmarkers = <?php echo build_markers_array(); ?>; // markers builder callback function for init js-var function build_markers_array() { $output = ''; $markers = array( /* define markers here */ ); foreach ( $markers as $marker ) { // id, lat, lng, name $output .= "[ {$marker['id']}, {$marker['lat']}, {$marker['lng']}, '{$marker['name']}', ],"; } $output = substr( $output, 0, -1 ); // get rid of last comma $output = "[{$output}]"; return $output; } ajaxコールバック関数function ajax_cb_fn() { check_ajax_referer( 'referer_name', $ajax_nonce ); // needed if performed some update via some ex. form $output = ''; // do stuff here - example, use build_markers_array(); with some input to update your markers $response = json_encode( array( 'data' => $output ) ); header( "content-type: application/json" ); echo $response; exit(); } ajax_json.js内のデータ処理これで、新しいajax jsonハンドリングファイルの中にdocument.ready()関数を書くことができます。そこにあなたはajax_object javascriptオブジェクトを通してあなたのデータにアクセスすることができます。 $.post()を使用して、フォームなどを介してデータ処理を実行できます。あなたのマーカーをあなたの初期配列を作るのにも使えるcreatemarkers js関数にぶつけることもできます(あなたはどこかでマーカー作成を扱う必要があります)。このデータをマークアップ要素の属性として追加してはいけない理由ブラウザによってレンダリングされたgetをマークアップし、処理されたばかりのデータ。そこに何百もの緯度/経度の属性をドロップした場合、divがどのように見えるかを想像してください。しばらくすると、デバイスブラウザやネットブックのラップトップ、タブレットなどのサポートを終了する必要があります。