2012-03-09 3 views
3

ユーザーが値を入力すると、mysqlデータベースから詳細がプルされ、ページが表示されずに表示されますリフレッシュ。これは明らかにjavascriptで行われます。PHPとjavascriptはInternet ExplorerとGoogle Chromeでは正常に動作していますが、Samsung Galaxy Androidでは動作しません

これはブラックベリーやタブレットなどのモバイルデバイスからInternet Explorer、Chromeなどで正しく動作し、ユーザーがデータを入力するとフォーマットが乱雑になります。以下のスクリーンショットを参照してください。

インターネットエクスプローラ、テーブル構造がタクトに残っ: enter image description here

モバイルデバイス(ギャラクシータブレット)、テーブルの構造が変更された: enter image description here

example can be viewed here

コード関与する2ページのためのものです下に示された。フロントエンドはjavascriptを使ってmysqlからデータを取り出して表示するPHPページです。

PHPページ:

<html> 
<head> 
<title>test</title> 
<script type="text/javascript"> 
    function showUser(userNumber, str) 
    { 
    document.getElementById("r"+(userNumber)).style.display="block"; 
    if (str=="") 
    { 
     document.getElementById("txtHint1").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("txtHint1").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","getdata1.php?q="+str,true); 
    xmlhttp.send(); 
    } 
</script> 
</head> 
<body> 

<form name="orderform" id="orderform" action="newsale.php" method="post"> 

<div align="left" id="txtHint1">mysql data will be shown here</div> 
<br> 
<table border="1"> 

    <tr id="r1"> 
     <td> 
      <input size="8" type="text" id="sku1" name="sku1" onchange="showUser(1, this.value)" > 
     </td> 
     <td> 
      <input type="text" id="qty1" name="qty1" size="3"> 
     </td> 
    </tr> 
    <tr id="r2"> 
     <td> 
      <input size="8" type="text" id="sku2" name="sku2" onchange="showUser(1, this.value)" > 
     </td> 
     <td> 
      <input type="text" id="qty2" name="qty2" size="3" > 
     </td> 
    </tr> 
</table> 

</form> 
</body> 
</html> 

getdata1.phpページmysqlのデータをフェッチする:

<?php 
$q=$_GET["q"]; 

$con = mysql_connect('localhost', 'user', 'pass'); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("database", $con); 

$sql="SELECT Category, Description,SellingUnits,Grouping,CasesPerPallet,ShrinksPerPallet FROM skudata WHERE packcode = '".$q."'"; 

$result = mysql_query($sql); 


while($row = mysql_fetch_array($result)) 
    { 
    echo "<font color=blue size=2>Description:</font> <font color=red size=2>".$row['Description']."</font>, "; 
    } 

mysql_close($con); 
?> 

おかげで再びすべてのasistanceのために、それが理解されます。

また、誰かが別のJavaScriptを持っていて、私にmysqlのデータを表示することができますか?私のjavascriptのスキルは存在しません。

おかげで、よろしく、

+1

生成されたHTMLを表示してください(右クリック - >ソースを表示) - 私に飛び跳ねるわけではありませんが、どこかに閉じられていないタグがあるようです。また、doctypeを選んで適切に貼り付けてください。 **すべての**属性値は引用符で囲む必要があります。 ''タグは避けてください。代わりにCSSを使用してください。 – DaveRandom

+0

ありがとう@DaveRandom、私は質問を更新しました。 – Smudger

+3

標準のhtml 1.0 strictまたはhtml5を使用し、それを検証するためにバリデーターを使用してくださいhttp://validator.w3.org/ – ZiTAL

答えて

1

問題はあなたのJavaScriptの最初の行にあります。

document.getElementById("r"+(userNumber)).style.display="block"; 

あなたがblockに最初のテーブル行の表示スタイルを設定しています。私はあなたのケースでそれを行う理由はないと思うので、ラインを削除するだけで、あなたのHTMLはサムスンギャラクシータブ(私は実際のタブレットでこれをテストしました)を含むすべてのブラウザでうまく動作します。

セルシフト効果は、FireFoxでも発生しました(これはもはやありません)。

+0

Thanks Alex、100%に変更する必要があるなど、一部のマークアップを変更する必要があります。時間と労力のために皆のおかげであなたは私のような馬鹿に入れました:-) – Smudger

関連する問題