Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在html表中显示从远程PHP(mysql)获取的数据_Javascript_Php_Mysql_Html Table - Fatal编程技术网

Javascript 在html表中显示从远程PHP(mysql)获取的数据

Javascript 在html表中显示从远程PHP(mysql)获取的数据,javascript,php,mysql,html-table,Javascript,Php,Mysql,Html Table,我有一个PHP页面,根据下拉列表选择,显示来自mysql数据库的数据,也来自mysql数据库。这显然使用了JavaScript PHP和mysql的集成工作得很好,但是我需要改变数据的显示方式 当前返回的mysql数据显示在一个表单元格中,我希望每个返回的mysql字段显示在自己的表单元格中 我已经添加了一张输出的照片,我希望它显示在每个表格单元格中,而不是一个单元格中 我附上了PHP文件和查询数据库的PHP文件中的代码 任何帮助都将不胜感激 index.php <html> <

我有一个PHP页面,根据下拉列表选择,显示来自mysql数据库的数据,也来自mysql数据库。这显然使用了JavaScript

PHP和mysql的集成工作得很好,但是我需要改变数据的显示方式

当前返回的mysql数据显示在一个表单元格中,我希望每个返回的mysql字段显示在自己的表单元格中

我已经添加了一张输出的照片,我希望它显示在每个表格单元格中,而不是一个单元格中

我附上了PHP文件和查询数据库的PHP文件中的代码

任何帮助都将不胜感激

index.php

<html>
<head>
<script type="text/javascript">
function showUser(str)
{
    if (str=="")
    {
        document.getElementById("txtHint").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").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","getdata.php?q="+str,true);
    xmlhttp.send();
}
</script>
</head>
<body>
<?php

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

mysql_select_db("unilever_unilever", $con);     

$skusql="SELECT packcode from skudata"; 
$resultsku=mysql_query($skusql); 

$optionssku=""; 

while ($row=mysql_fetch_array($resultsku)) 
{ 
    $sku=$row["packcode"]; 
    $optionssku.="<OPTION VALUE=\"$sku\">".$sku; 
} 

?>

<table border=1>
<tr>
    <td>SKU</td>
    <td>Description</td>
    <td>SU</td>
    <td>Points</td>
    <td>Category</td>
    <td>Grouping</td>
</tr>
<tr>
    <td>
        <select name="users" onchange="showUser(this.value)">
            <OPTION VALUE=0>
            <?=$optionssku?> 
        </SELECT> 
    </td>
    <td>
        <div id="txtHint"><b>SKU Details will be seen here</b></div>
    </td>
</tr>
</table>
</body>
</html>

函数showUser(str)
{
如果(str==“”)
{
document.getElementById(“txtHint”).innerHTML=“”;
返回;
} 
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“getdata.php?q=“+str,true”);
xmlhttp.send();
}
SKU
描述
苏
要点
类别
分组
SKU详细信息将在此处查看
获取数据页面

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

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

mysql_select_db("unilever_unilever", $con);

$sql="SELECT * FROM skudata WHERE packcode = '".$q."'";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
{    
    echo "<td>" . $row['Description'] . "</td>";
    echo "<td>" . $row['SellingUnits'] . "</td>";
    echo "<td>" . $row['EOTTPoints'] . "</td>";
    echo "<td>" . $row['Category'] . "</td>";
    echo "<td>" . $row['Grouping'] . "</td>";
}


mysql_close($con);
?> 


这里的问题是,您使用的两个想法并不完全一致。此行:
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText
将id为“txtHint”的标记的内容设置为php脚本返回的内容。这意味着当php返回时,例如:
blahblahblah

然后,您的页面以以下内容结束:

<div id="txtHint">
    <td>blah</td>
    <td>blah</td>
    <td>blah</td>
</div>

废话
废话
废话
你看到这里发生了什么吗?您没有向现有行添加更多单元格,而是在已有的单元格内创建另一个表(这是一个糟糕的表,没有
标记…)

要解决此问题,请将id为“txtHint”的元素更改为所编辑行的
标记,并更新php以返回该行的第一个单元格,例如:

HTML:


SKU
描述
苏
要点
类别
分组
SKU详细信息将在此处查看
PHP:

while($row=mysql\u fetch\u array($result))
{   
回声“;
echo$optionssku;//不确定这个变量来自何处,所以我将把从任何需要的地方获取它留给您
回声“;
回显“$row['Description']”;
回显“$row['SellingUnits]”;
回显“$row['EOTTPoints']”;
回显“$row['Category']”;
回显“$row['Grouping']”;
}
(代码没有经过测试,但会是这样的)


当然还有其他方法可以解决这个问题,几乎可以肯定是更好的方法,但这是我想到的第一个想法。

嗨,我不得不将
java
重新标记为
javascript
欢迎使用堆栈溢出!所以,这并不是一个“为我编写代码”的网站——如果这是你正在寻找的,你可能应该雇佣一位专家为你做这件事。如果你有一个具体的技术问题出现在你的工作问题,请随意编辑相应的问题。嗨@Pekka,我100%同意你,因为这不是一个为我写的网站。我已经根据我在网上找到的例子在问题中编写了这段代码。它运行良好,我只是有一个问题,我不能得到工作,因此我的问题。我已经做了研究!
<table border=1>
    <tr>
        <td>SKU</td>
        <td>Description</td>
        <td>SU</td>
        <td>Points</td>
        <td>Category</td>
        <td>Grouping</td>
    </tr>
    <tr id="txtHint">
            <td>
                <select name="users" onchange="showUser(this.value)">
                <OPTION VALUE=0>
                <?=$optionssku?> 
                </SELECT> 
            </td>
        <td colspan="5">SKU Details will be seen here</td>
    </tr>
while($row = mysql_fetch_array($result))
{   
    echo "<td><select name='users' onchange='showUser(this.value)'><OPTION VALUE=0>"; 
    echo $optionssku; //Not sure where this variable comes from, so I'll leave getting it from wherever necessary to you
    echo "</SELECT></td>";
    echo "<td>" . $row['Description'] . "</td>";
    echo "<td>" . $row['SellingUnits'] . "</td>";
    echo "<td>" . $row['EOTTPoints'] . "</td>";
    echo "<td>" . $row['Category'] . "</td>";
    echo "<td>" . $row['Grouping'] . "</td>";
}