У меня есть следующий 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]);
}
});
}
});
А? php - серверная. Это действительно не волнует, что такое браузер ... Проблема в том, что что-то не отображается. Как это называется через AJAX? – immulatin
Все будет отображаться в каждом браузере. Кроме IE7. Я попробовал print_r ($ menu), и он имеет значение NULL в IE7, но содержит данные в других браузерах. – rjg132234
Вероятно, это связано с вашими 'setlocale()' и 'localeconv()'. Попробуйте удалить те для теста, потому что, как @immulatin сказал, что PHP является серверной, вы должны работать нормально. – vee