Функциональность отличается от IE, чем на вкладке Samsung Galaxy
-
27-10-2019 - |
Вопрос
У меня есть приложение на основе PHP, которое мне нужно работать как на обычном ПК, так и на планшете Samsung Galaxy.
Функциональность на обоих устройствах работает правильно, однако это просто форматирование и представление данных, которые являются различными.
Мое приложение получает данные из базы данных MySQL, когда пользователь входит в номер продукта. Эти данные отображаются в той же строке, что и код продукта, вставленный пользователем. В Internet Explorer он работает на 100%, однако на планшете, как только пользователь вводит код пользователя, вся строка конденсируется в первую ячейку.
Я прикрепил изображения, чтобы попытаться справиться с тем, в чем проблема, найдите их внизу Qustion.
Мой соответствующий код:
В заголовке:
<script type="text/javascript">
function showUser(userNumber, str)
{
document.getElementById("r"+(userNumber+1)).style.display="block";
if (str=="")
{
document.getElementById("txtHint" + userNumber).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint" + userNumber).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getdata1.php?q="+str,true);
xmlhttp.send();
}
</script>
В теле:
<table><tr id="r1">
<td>
<input size=8 style="border: none" type=number id=sku1 name=sku1 onchange="showUser(1, this.value)" onkeypress="return enter(document.orderform.sku2)" value=<? echo $sku1; ?> >
</td>
<td>
<? if($grp1==0){echo " ".$grp1;} else {echo " " ;} ?>
</td>
<td>
<? if($su1==0){echo " ".$su1;} else {echo " " ;} ?>
</td>
<td>
<? if($fp1>0){echo " ".$fp1;} else {echo " " ;} ?>
</td>
<td>
<input type=number id=qty1 name=qty1 size=3 value=<? if($qty1>0){echo $qty1;}; ?> >
</td>
<td>
<? if($qty1==0){echo " ";} else {if($qty1>0){if($line1decvalue==0){ echo "<img src=tick.jpg>";} else{ echo "<img src=cross.jpg>";}} else {echo "<img src=cross.jpg>";}} ?>
</td>
<td>
<b><font color=red><? if($sku1>0){if($points1>0){echo " ".$points1;} else {echo "0";};} else {echo " ";} ?></font></b>
</td>
<td>
<div align="left" id="txtHint1"><? if($sku1>0){echo "Selling Units: <font color=red>$su1</font>, Grouping: <font color=red>$grp1</font>, $su1 per Pallet: <font color=red>$fp1</font>";} else {echo "Select a SKU on left and Details will be seen here";} ?></div>
</td>
</tr>
<tr id="r2">
<td>
<input size=8 style="border: none" type=number id=sku2 name=sku2 onchange="showUser(2, this.value)" onkeypress="return enter(document.orderform.sku3)" value=<? echo $sku2; ?> >
</td>
<td>
<? if($grp2==0){echo " ".$grp2;} else {echo " " ;} ?>
</td>
<td>
<? if($su2==0){echo " ".$su2;} else {echo " " ;} ?>
</td>
<td>
<? if($fp2>0){echo " ".$fp2;} else {echo " " ;} ?>
</td>
<td>
<input type=number id=qty2 name=qty2 size=3 value=<? if($qty2>0){echo $qty2;}; ?> >
</td>
<td>
<? if($qty2==0){echo " ";} else {if($qty2>0){if($line2decvalue==0){ echo "<img src=tick.jpg>";} else{ echo "<img src=cross.jpg>";}} else {echo "<img src=cross.jpg>";}} ?>
</td>
<td>
<b><font color=red><? if($sku2>0){if($points2>0){echo " ".$points2;} else {echo "0";};} else {echo " ";} ?></font></b>
</td>
<td>
<div align="left" id="txtHint2"><? if($sku2>0){echo "Selling Units: <font color=red>$su2</font>, Grouping: <font color=red>$grp2</font>, $su1 per Pallet: <font color=red>$fp2</font>";} else {echo " "; }?></div>
</td>
</tr>
Функциональность ПК:
Функциональность планшета:
Пожалуйста, дайте мне знать, если я смогу помочь дальше с любой другой информацией.
Решение 2
Вот ответ, Line Document.getElementById ("r"+(пользователь)). Style.Display = "block"; Просто нужно удалить. Спасибо @alex van Oostenrijk за это.
С уважением, Райан
Другие советы
Я столкнулся с аналогичной проблемой в одном приложении, я вижу аналогичную проблему здесь ... У меня был elementid.readystate, который я заменил на jQuery Ready, и это сработало для меня
Вместо того, чтобы тестировать в таблетке каждый раз, проверяйте это в Chrome ... экономит время, оба предназначены одинаково для такого рода проблем