2016-01-19 38 views
0

我希望這不是一個單調乏味的問題......我正在編寫其他人編寫的代碼。問題根本在於它在Chrome和Firefox上運行良好,但在Internet Explorer上運行得並不順利。發生什麼事情時,點擊提交頁面,只需重新加載並重新開始。我不知道爲什麼?誰能幫忙?登錄代碼不能在Internet Explorer中工作,但在Chrome和Firefox中可以使用

下面是HTML:它本質上是兩個字段索要電話號碼和PIN碼...

<form name="form1" id="form1" onSubmit="get_client_data(); return false;" method="post" > 
    <input type="hidden" name="random_1" id="random_1" value="<?=$session['random_1']?>" /> 
    <h2>ENTER THE NUMBER YOU’D LIKE TO REFILL</h2> 
    <input placeholder="ENTER YOUR PHONE NUMBER:" name="phone_number" id="phone_number" type="text" class="form_input" onBlur="convert_phone(this.value,'phone_number');" /> 

    <h2>ENTER YOUR PIN</h2> 
    <input placeholder="ENTER YOUR PIN CODE:" name="pin_id" id="pin_id" type="text" class="form_input" onBlur="check_validity(this.value, 'pin_id');" /><br> 

    <input name="" type="submit" value="GO" class="right button go" id="step_1" /> 
    </form> 

使用onSubmit發送到下面的JavaScript函數:(此使用AJAX來確定數量和PIN匹配,並且如果他們這樣做 - 它將使HTML(這裏沒有給出))的其他部分

function get_client_data(){ 

    var pin_id = $('#pin_id').val(); 
    var phone_number = $('#phone_number').val(); 
    var random_1 = $('#random_1').val(); 

    $.ajax({ 
    type: "POST", 
    url: "front_end_functions.php", 
    data: "phone_number="+phone_number+"&plan="+plan+"&pin_id="+pin_id+"&random_1="+random_1+"&function=get_client_data", 
    dataType: 'json', 
    success: function(msg){ 

    if(msg == 'error') { 
     alert('error'); 
     return false;    
    } else if(msg == 'error2') { 
    alert('error'); 
     return false; 
    } else { 

    $('#div_1').addClass('deselect'); 
    $('#div_2').removeClass('deselect'); 

    $('#phone_number').attr('disabled','disabled'); 
    $('#pin_id').attr('disabled','disabled'); 
    $('#step_1').attr('disabled','disabled');  

    $('#phone').removeAttr('disabled'); 
    $('#carrier').removeAttr('disabled'); 
    $('#plan').removeAttr('disabled'); 
    $('#step_2').removeAttr('disabled'); 

    $('#phone').val(msg[1]); 
    $('#carrier').val(msg[2]); 
    $('#plan').val(msg[3]); 
    } 
} 
}); 
} 

阿賈克斯發送到看起來像這樣(你可以看到我使用PDO的功能 - 這是否導致問題?):

if($_REQUEST['function'] == 'get_client_data') { 

$random_1 = $_REQUEST['random_1']; 
$ip = getenv('HTTP_CLIENT_IP')?: 
getenv('HTTP_X_FORWARDED_FOR')?: 
getenv('HTTP_X_FORWARDED')?: 
getenv('HTTP_FORWARDED_FOR')?: 
getenv('HTTP_FORWARDED')?: 
getenv('REMOTE_ADDR'); 

$query = $db->prepare("SELECT * FROM sessions WHERE id = ?"); 
$query->execute(array($ip)); 
$session = $query->fetch(); 

if($session['random_1'] == $random_1) { 

    $phone_number = $_REQUEST['phone_number']; 
    $pin_id = $_REQUEST['pin_id']; 

    $sql = "SELECT c.cid, cp.phone, cr.carrier_name, p.plan_name ,cp.carrier as cr_id,cp.plan as p_id 
      FROM clients c, client_phones cp , carriers cr, plans p 
      WHERE cp.phone = ? 
      AND cp.client_id = ? 
      AND cp.deleted = 0 
      AND c.cid = cp.client_id 
      AND c.status = 'a' 
      AND cr.carrier_id = cp.carrier 
      AND p.plan_id = cp.plan"; 

    $query = $db->prepare($sql); 
    $query->execute(array($phone_number, $pin_id)); 
    $result = $query->fetch(); 
    if(!empty($result)){ 
     $_SESSION['client'] = $result; 
     echo json_encode($result); 
    }else{ 
    echo json_encode('error'); 
    } 
}else{ 
    echo json_encode('error2'); 
}  
} 

謝謝!

+0

我是基於mac的,所以可能無法幫助,但你應該包括在哪個版本的IE遇到問題。 – chris85

+0

如果PDO會導致問題,那麼每個人都會注意到,不僅是「Internet Explorer」的用戶。 'Internet Explorer'有開發者工具,你是否嘗試過在那些幫助下進行調試(檢查網絡連接,查找預期響應,瀏覽器控制檯等)。 –

+0

你檢查過瀏覽器的控制檯是否有錯誤? –

回答

1

Yep - 解決了它,在IE上使用調試器(抱歉之前沒有這麼做),它說ajax代碼的數據部分中的'計劃'是未定義的。所以那導致了錯誤。 有趣的是,Chrome和Firefox沒有這個問題...

相關問題