-1

두 번째 아약스 요청에 응답이 없습니다. 특정 조건이 일치 할 때 단 하나의 탭이 포함 된 Google지도에 Google 정보 창을 표시하려고합니다. 그렇지 않으면 두 개의 탭을 표시하려고합니다. 맞춤형 동작을 사용하는 다른 마커 기능으로이 기능을 쉽게 구현할 수 있다고 생각했지만 응답이 없습니다. 이것에 대한 도움은 언제나 감사하겠습니다. 미리 감사드립니다.두 번째 아약스 요청에 대한 응답 없음

나는 기본적으로 일을 두 개의 동일한 기능을 복사
// click event handler 
    google.maps.event.addListener(marker, 'click', function() { 

     var ecoli_array = []; 
     var marker = this; 
     var str = ""; 
     var beach_status; // beach_status flag 

     // load gif before ajax request completes 
     infoWindow.setContent('<img src="img/loading.gif" alt="loading data"/>'); 
     infoWindow.open(map, marker); 

     // override beach data when a beach is closed 
     beach_status = this.getBeachStatus(); 
     beach_status = beach_status.toLowerCase(); 
     if (beach_status === 'closed') { 
      str = [ 
        '<h1>' + this.beach_name + '</h1>', 
        '<h3>' + this.beach_region + '</h3>', 
        '<p>' + this.status_description + '</p>' 
       ].join(''); 
      infoWindow.setContent(str); 
      infoWindow.open(map, marker); // changed this to marker to resolve issue 


     } else { 

      // chained ajax invocations 
      if (this.displayOnlyAlgaeResults === false) { 
       // Standard Use case 
       $.when(this.getEcoliData(), this.getAlgaeData()).done(function (data1, data2) { 
        str += marker.getHeader() + marker.afterGetEcoliData(data1[0].rows); 
        str += marker.afterGetAlgaeData(data2[0].rows); 
        infoWindow.setContent(str); 
        infoWindow.open(map, marker); // changed this to marker to resolve issue 
        // render tabs UI 
        $(".tabs").tabs({ selected: 0 }); 

       }); // end when call 
      }else{ 
       // Algae Only Use Case 
       var d = this.getOnlyAlgaeData(); 
       console.log(d); 
       $.when(this.getOnlyAlgaeData()).done(function (rsp) { 
        //console.log(rsp); 
        str += marker.getAlgaeHeader() + marker.afterGetOnlyAlgaeData(rsp[0].rows); 
        //str += marker.afterGetOnlyAlgaeData(data2[0].rows); 
        infoWindow.setContent(str); 
        infoWindow.open(map, marker); // changed this to marker to resolve issue 
        // render tabs UI 
        $(".tabs").tabs({ selected: 0 }); 

       }); // end when call 

      } // end inner if else 
     } // end outer if else 

    }); // End click event handler 

getOnlyAlgaeData: function() { // begin getAlgaeData 
      var obj; 

      var queryURL = "https://www.googleapis.com/fusiontables/v1/query?sql="; 
      var queryTail = '&key=xxxxx&callback=?'; 
      var whereClause = " WHERE 'Beach_ID' = " + this.beach_id; 

      var query = "SELECT * FROM xxxx " 

      + whereClause + " ORDER BY 'Sample_Date' DESC"; 

      var queryText = encodeURI(query); 

      // ecoli request 
      return $.ajax({ 
       type: "GET", 
       url: queryURL + queryText + queryTail, 
       cache: false, 
       dataType: 'jsonp' 
      }); 

     }, // end getAlgaeData method 



     // added afterGetOnlyAlgaeData 
     afterGetOnlyAlgaeData: function (data) { 
      var algae_rows_str = ""; 
      algae_rows = data; 

      var algae_rows_str = [ 
        '<div id="tab-1">', 
       '<h1>' + this.beach_name + '</h1>', 
       '<h3>' + this.beach_region + '</h3>', 
       '<table id="algae_table " class="data">', 
       '<tr>', 

        '<th>Sample Date</th>', 
        '<th class="centerText">Blue Green Algae Cells <br/>(cells/ mL) </th>', 
        '<th>Recreational Water Quality Objective <br/>(100,000 cells/mL)</th>', 
        '<th class="centerText">Algal Toxin Microcystin <br/> (&#956g/L)</th>', 
        '<th>Recreational Water Quality Objective <br/> (20 &#956g/L)</th>', // &mu instead of u 
       '</tr>' 
      ].join(''); 

      //console.log(algae_rows); 

      if (typeof algae_rows === 'undefined') { 
       algae_rows_str = [ 
        '<div id="tab-1">', 
         '<h1>' + this.beach_name + '</h1>', 
         '<h3>' + this.beach_region + '</h3>', 
         '<p>This season, no algal blooms have been reported at this beach.</p>', 
        '</div>', 
        '</div>', 
        '</div>', 
        '</div>' 
       ].join(''); 
      } else { 

       for (var i = 0; i < algae_rows.length; i++) { 
        //console.log(rows[i]); 
        //algae_rows_str += '<tr><td>' + formatDate(algae_rows[i][2]) + '</td><td class="centerText">' + checkAlgaeToxinCount(algae_rows[i][3]) + '</td><td>' + checkAlgaeToxinForAdvisory(algae_rows[i][4]) + '</td><td class="centerText">' + checkAlgaeCount(algae_rows[i][5]) + '</td><td>' + checkBlueGreenAlgaeCellsForAdvisory(algae_rows[i][6]) + '</td></tr>'; 
        algae_rows_str += '<tr><td>' + formatDate(algae_rows[i][2]) + '</td><td class="centerText">' + checkAlgaeCount(algae_rows[i][5]) + '</td><td>' + checkBlueGreenAlgaeCellsForAdvisory(algae_rows[i][6]) + '</td><td class="centerText">' + checkAlgaeToxinCount(algae_rows[i][3]) + '</td><td>' + checkAlgaeToxinForAdvisory(algae_rows[i][4]) + '</td></tr>'; 
       } 
       algae_rows_str += '</table>' 
       algae_rows_str += '</div></div></div>'; 
       //return algae_rows_str; 

      } //end if 
      return algae_rows_str; 

     }, // end afterGetOnlyAlgaeData 



    }); // ====================end marker 

는 그들에게 약간 다른 이름을 준 대신 두 1 개 탭을 표시하기 위해 각각의 기능을 사용자 정의,하지만 난 아무런 응답을하지 않습니다.

생각하십니까?

+0

"하지만 응답이 없습니다"라는 메시지가 표시됩니다. 아약스 요청? 코드의 나머지 부분과 분리하여 디버깅하십시오. –

+0

$ .when 호출 내에서 호출 됨 – Michael

+0

예, 이해합니다. 첫 번째 단계를 밟아 응답이 비어있는 이유를 파악하십시오. (또는 적어도 논리 오류가 아니라 비어 있음을 확인하십시오) –

답변

0

도움을 주셔서 감사합니다.

나는 응답을 잘못 참조하고있었습니다. 예.

str += marker.getAlgaeHeader() + marker.afterGetOnlyAlgaeData(rsp[0].rows); 

str += marker.getAlgaeHeader() + marker.afterGetOnlyAlgaeData(rsp.rows); 

이런

에 : 나는 다음 줄을 변경!

관련 문제