2013-07-13 1 views
0

У меня есть следующий PHP-скрипт, который запускается при нажатии кнопки. Он отлично работает/штрафом в Firefox, Chrome, Safari и IE 8+, но когда я пытаюсь запустить скрипт в IE7 код получает повесил на

while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) 

Я попытался изменить SQLSRV_FETCH_ASSOC к SQLSRV_FETCH_NUM и SQLSRV_FETCH_BOTH, но тому же результату ,

Я попытался вторя внутри цикла в то время, и это ничего не эхо, так что это означает, что он не любит

while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) 

по некоторым причинам.

Кто-нибудь знает, в чем проблема? Или как это исправить?

ОБНОВЛЕНО PHP

<?php 

$page = $_POST['page']; 

function getMenu($title){ 

    $serverName = "xxxxx.com"; 
    $username = "xxxxxxxx"; 
    $password = "xxxxxxxxx"; 
    $database = "xxxxxxx"; 
    #DO NOT EDIT BELOW THIS LINE 
    $connectionInfo = array("UID"=>$username, "PWD"=>$password, "Database"=>$database); 
    $conn = sqlsrv_connect($serverName, $connectionInfo); 
    $result = sqlsrv_query($conn,"SELECT * FROM Menu2013 WHERE viewable = '1' AND section LIKE '".$title."'") or die (sqlsrv_errors()); 

    setlocale(LC_ALL, ''); // Locale will be different on each system. 

    $locale = localeconv(); 

    $i=0; 
    while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) { 


     $menu[$i] = $row['title']; 
     $price[$i] = number_format($row['price'], 2, $locale['decimal_point'], $locale['thousands_sep']); 
     $description[$i] = $row['description'];   

     $i++; 
    } 

    sqlsrv_close($conn);    

    return array($menu, $price, $description); 
} 


$code = '<div id="productTitle">'.$page.'</div>'; 


$newMenu = getMenu($page); 


foreach($newMenu[0] as $key => $value){ 
    $code.= '<div class="item"><lable>'.$value.'</lable><span class="price">$'.$newMenu[1][$key].'</span><input type="number" min="0" placeholder = "0" size = "1" class="items" value="" name="'.$value.'"/><br/><div class="description">'.$newMenu[2][$key].'</div></div><hr/>'; 

} 

echo $code; 

?> 

JQuery AJAX вызова

$.ajax({ 
    type: 'POST', 
    url: 'functions.php', 
    data:{'page': menuItem}, 
    success: function(data){ 
     $('#orderForm').html(data); 
     $('.items').each(function(){ 
      if($.cookie($(this).attr('name'))) 
      { 
       $(this).val($.cookie($(this).attr('name'))[0]); 
      } 
     }); 
    } 
}); 
+0

А? php - серверная. Это действительно не волнует, что такое браузер ... Проблема в том, что что-то не отображается. Как это называется через AJAX? – immulatin

+0

Все будет отображаться в каждом браузере. Кроме IE7. Я попробовал print_r ($ menu), и он имеет значение NULL в IE7, но содержит данные в других браузерах. – rjg132234

+0

Вероятно, это связано с вашими 'setlocale()' и 'localeconv()'. Попробуйте удалить те для теста, потому что, как @immulatin сказал, что PHP является серверной, вы должны работать нормально. – vee

ответ

0

После $conn добавить

$viewable = '1'; 
$params = array(&$viewable, &$title); 
$tsql = "SELECT * FROM Menu2013 WHERE viewable = (?) AND section LIKE (?)"; 
$result = sqlsrv_stmt($conn, $tsql, $params); 

Если вы все еще не получают никакой отдачи, используйте sqlsrv_errors() для получения дополнительной информации

 Смежные вопросы

  • Нет связанных вопросов^_^