【发布时间】:2012-03-09 09:42:32
【问题描述】:
我有一个基于 php 的 web 应用程序,当用户输入一个值时,它会从 mysql 数据库中提取详细信息并在不刷新页面的情况下显示它。这显然是用 javascript 完成的。
这在 Internet Explorer、chrome 等移动设备(如黑莓和平板电脑)上 100% 正确运行,一旦用户输入数据,格式就会被弄乱。请参阅下面的屏幕截图。
Internet explorer,表结构保持完整:
移动设备(Galaxy Tablet),表结构发生变化:
所涉及的 2 个页面的代码如下所示。前端是一个php页面,它使用javascript从mysql中获取和显示数据。
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);
?>
再次感谢大家的帮助,不胜感激。
或者,有没有人有另一个 javascript 可以让我显示来自 mysql 的数据?抱歉,但我的 JavaScript 技能不存在。
感谢和问候,
【问题讨论】:
-
请显示生成的 HTML(右键单击 -> 查看源代码) - 看起来您在某处有一个未关闭的标签,尽管它并没有跳出来。另外,请正确选择一个文档类型并坚持下去。 所有属性值应该用引号括起来。应避免使用
<font>标签 - 改用 CSS。 -
谢谢@DaveRandom,我已经更新了问题。
-
使用标准 html 1.0 strict 或 html5 并使用验证器对其进行验证validator.w3.org
-
我仍然找不到那个我确定存在的未闭合标签,很难阅读您的 HTML。您需要做的第一件事是在所有属性值周围添加引号 - 问题可能是由
<input>s 中的空的、未引用的value=属性引起的,例如value= >。您肯定给 HTML 解析器带来了一项艰巨的工作,我对您遇到错误并不感到惊讶。添加<!DOCTYPE html>作为文档的第一行,然后遍历并添加引号,因此(例如)<font color=grey>变为<font color="grey">。 -
嗨@DaveRandom,再次感谢您的帮助和您的时间。我已经更新了问题以显示代码的简化版本,只有我正在寻找的功能,相同的结果。希望我已经正确格式化了代码。谢谢,瑞安
标签: php javascript android format