2014-07-07 1 views
0

새 탭에서 열려면 json 객체로 json 객체로 PHP로 작성된 URL을 반환하는 방법은 무엇입니까?URL을 새 탭에서 열려면 json으로 json으로 PHP를 작성하십시오.

지금까지 시도한 모든 시도는 실패했습니다.

도와주세요 여기에 내 JS 파일

여기
$(document).ready (function() { 

    $('.promoCode').click(function() { 

     // Store values in variables 
     var form = $(this).closest('form'); 
     var name = form.find('input[name=name]'); 
     var id = form.find('input[name=id]'); 
     var submitted = form.find('input[name=submitted]'); 
     var visitor = form.find('input[name=visitor]'); 

     // Organize data 
     var data = 'name=' + name.val() + '&id=' + id.val() + '&submitted=' + submitted.val() + '&visitor=' + visitor.val(); 

     var request = $.ajax({ 
      type: "POST", 
      url: "/includes/_db_get_promo_code.php", 
      data: data, 
      cache: false, 
      success: function (html) { 
       myWindow = window.open(encodeURIComponent(true), 
        "_blank"); 
       myWindow.focus(); 
       if (html == "true") { 

       } else { 
         form.find('.error').fadeIn(500).delay(4000).fadeOut(500); 
       } 
      }, 
      error: function(jqXHR, textStatus, error) { 

       alert("Form Error: " + error); 
      } 
     }); 
     return false; 
    }); 
}); 

내 PHP 파일

<?php 
require_once($_SERVER['DOCUMENT_ROOT']."/includes/sitewide-variables.php"); 
// Check if form was submitted 
if ($_POST['submitted'] && $_POST['visitor'] == '') { 

    // Check if all required fields are filled in 
    if (empty($_POST['name']) && empty($_POST['id'])) { 
     echo "Error: You must fill in all required fields."; 
     // If not, exit! 
     exit(); 
    } 
    // If valid, store values in variables 
    $id = stripslashes($_POST['id']); 
    $name = stripslashes($_POST['name']); 

if($name){ 
    $query = 'SELECT * FROM files_paid WHERE parentpageID = :promoproductID'; 
    $res = $db->prepare($query); 
    $res->execute(array(':promoproductID' => $id)); 
    foreach ($res as $info); 

    if($info['promoCode'] == $_POST['name']){ 
     $redirect_link = 'http://'.$info['promobuylinkID'].'.myid.pay.clickbank.net'; 

    $todayis = date("l, F j, Y, g:i a") ; 
    $to = "My Email Address"; 
    $subject = "Promotional Purchase"; 
    $message = "$todayis [EST] \n 
       Promo Code: $name \n 
       "; 
    // Send email 
    $sent = mail($to, $subject, $message); 

    if($sent) { 
     echo json_encode($redirect_link); 

    } else { 
     echo "Error: Mail could not be send."; 
     exit(); 
    } 
} else { 
    echo "Error: There was a problem with submitting the form"; 
    exit(); 
} 
} 
} 
?> 

나는 단지 새 창에서 true을 얻고입니다.

미리 감사드립니다.

답변

0

이 문제점을 발견했습니다.

먼저 아약스에서 dataType : "json"이 누락되었습니다.

그 이후 나는 단지 내가 얻을 필요가있는 지점에 도달하기 위해 html을 반환해야했습니다. 이

$(document).ready (function() { 

    $('.promoCode').click(function() { 

     // Store values in variables 
     var form = $(this).closest('form'); 
     var name = form.find('input[name=name]'); 
     var id = form.find('input[name=id]'); 
     var submitted = form.find('input[name=submitted]'); 
     var visitor = form.find('input[name=visitor]'); 

     // Organize data 
     var data = 'name=' + name.val() + '&id=' + id.val() + '&submitted=' + submitted.val() + '&visitor=' + visitor.val(); 

     var request = $.ajax({ 
      type: "POST", 
      url: "/includes/_db_get_promo_code.php", 
      data: data, 
      dataType: "json", 
      cache: false, 
      success: function (html) { 
       if (html) { 
        window.open(decodeURIComponent(html),"_blank").focus(); 
       } else { 
         form.find('.error').fadeIn(500).delay(4000).fadeOut(500); 
       } 
      }, 
      error: function() { 
       alert("Your Coupon Code is not valid"); 
      } 
     }); 
     return false; 
    }); 
}); 

모두 잘 작동처럼

는 그래서 JS 파일은 이제 보인다.

관련 문제