2016-06-11 2 views
0

나는 특정 PHP의 URL을로드하면 나에게 출력을 제공하지만 같은 PHP는 아약스를 통해 어떤 아약스 값과 함께 아무것도 나타나지 때 아약스 전화를 통해 폼 PHP를 얻을 tryinh 오전 아무것도 나타나지 않습니다. 어떻게해야 할아약스 엑셀 형식의 PHP를 얻을

아약스 :

var fromdate= $("#fromdate").val(); 
var ToDate= $("#ToDate").val(); 
var Year= $('#Year').val(); 
var Category=$('#Category_1').val(); 

          $.ajax({ 
           url: "http://localhost/demo.php", 
           type: "post", 
           data: { 
            fromdate:fromdate,ToDate:ToDate,Year:Year,Category:Category 
           }, 
           success: function(responsecon) { 
             window.open('http://YOUR_URL','_blank'); 


           } 

          }); 

PHP :

<?php 
    $conn=mysqli_connect('localhost','root','0000','xxxxx'); 

    $filename = "users_export"; 
    $fromdate = mysqli_real_escape_string($mysqli,trim($_POST["fromdate"])); 
    $ToDate = mysqli_real_escape_string($mysqli,trim($_POST["ToDate"])); 
    $Year = mysqli_real_escape_string($mysqli,trim($_POST["Year"])); 
    $Category = mysqli_real_escape_string($mysqli,trim($_POST["Category"])); 
    $sql = "Select * from xxxxxxxxxxx where category='$Category'"; 
    $result = mysqli_query($conn,$sql) or die("Couldn't execute query:<br>" . mysqli_error(). "<br>" . mysqli_errno()); 
    $file_ending = "xls"; 
    header("Content-Type: application/xls"); 
    header("Content-Disposition: attachment; filename=$filename.xls"); 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 
    $sep = "\t"; 
    $names = mysqli_fetch_fields($result) ; 
    foreach($names as $name){ 

    } 
    print ("dasd" . $sep."dasd1" . $sep); 
    print("\n"); 
    while($row = mysqli_fetch_row($result)) { 
     $schema_insert = ""; 
     for($j=0; $j<mysqli_num_fields($result);$j++) { 
      if(!isset($row[$j])) 
      $schema_insert .= "NULL".$sep; 
      elseif ($row[$j] != "") 
      $schema_insert .= "$row[$j]".$sep; 
      else 
      $schema_insert .= "".$sep; 
     } 
     $schema_insert = str_replace($sep."$", "", $schema_insert); 
     $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); 
     $schema_insert .= "\t"; 
     print(trim($schema_insert)); 
     print "\n"; 
    } 
?> 
+0

콘솔에서 오류 :

또한, 성공의 경우에 당신은 어떻게 든 여기 $("#selector").html(responsecon);

업데이트 된 Ajax 요청은 같은과 PHP 스크립트에서 반환 된 내용을 인쇄 할 수 있나요? 입력 내용 (fromdate, todate 등)에 유효한 데이터가 들어 있습니까? 'success' 콜백에'respondecon'을 어떻게 출력합니까? –

답변

0

기본적 jQuery ajax 요청에 두 가지 문제가 있습니다

당신은 PHP 스크립트에서 content-type을 지정하고 있습니다. 당신은 ajax 객체에서 dataType: application/xls을 사용하여 귀하의 ajax 요청에서 기대할 점을 jQuery에 알려줘야합니다.

오류가 발생하고 오류를 처리하기 위해 error 콜백 함수를 지정하지 않았기 때문에 응답을받지 못합니다.

$.ajax({ 
    url: "http://localhost/demo.php", 
    type: "post", 
    dataType: "application/xls", // Tell what content-type to expect from server 
    data: { 
     fromdate:fromdate, 
     ToDate:ToDate, 
     Year:Year, 
     Category:Category 
     }, 
    success: function(responsecon) { 
     window.open('http://YOUR_URL','_blank'); 
     $(#"some-container").html(responsecon); // Print the content 
     }, 
    error: function() { 
     alert("error"); 
     } 
    }); 
관련 문제