我需要一些帮助,
我有一个带有下拉列表的PHP页面,由mysql数据库查询填充。 我希望能够在其他表格单元格中显示所选选项的数据库详细信息。 理想情况下,这可以在没有页面刷新的情况下实现。
除此之外,该表将包含多达75行(车辆上的托盘 - 这是销售工具),因此需要使用while语句或其他内容来实现此目的。每行都有一个选择框来选择包装码。
我的下拉列表代码如下,该表目前只包含5行。
我知道除此之外我还需要使用ajax或javascript吗?
如果有人有示例脚本或者可以使用我的代码作为示例,我会非常感激。
<?
$con = mysql_connect("localhost","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbname", $con);
$packcodesql="SELECT packcode from skudata order by packcode";
$resultpackcode=mysql_query($packcodesql);
$optionspackcode="";
while ($row=mysql_fetch_array($resultpackcode)) {
$packcode=$row["packcode"];
$optionspackcode.="<OPTION VALUE=\"$packcode\">".$packcode;
}
?>
<table border=1>
<tr>
<td>Pack Code</td>
<td>Category</td>
<td>Selling Units</td>
<td>Full Pallet QTY</td>
<td>Order QTY</td>
</tr>
<Tr>
<td>
<SELECT NAME=packcode1 style="width:100px;">
<OPTION VALUE=0><?=$optionspackcode?></SELECT>
</td>
<td>
<!-- show mysql result for "select Category from skudata where packcode=packcode1" -->
</td>
<td>
<!-- show mysql result for "select SellingUnits from skudata where packcode=packcode1" -->
</td>
<td>
<!-- show mysql result for "select FullPalletQTY from skudata where packcode=packcode1" -->
</td>
<td><input type="text" id="qty" name="qty"></td>
</tr>
<Tr>
<td>
<SELECT NAME=packcode2 style="width:100px;">
<OPTION VALUE=0><?=$optionspackcode?></SELECT>
</td>
<td>
<!-- show mysql result for "select Category from skudata where packcode=packcode2" -->
</td>
<td>
<!-- show mysql result for "select SellingUnits from skudata where packcode=packcode2" -->
</td>
<td>
<!-- show mysql result for "select FullPalletQTY from skudata where packcode=packcode2" -->
</td>
<td><input type="text" id="qty" name="qty"></td>
</tr>
<Tr>
<td>
<SELECT NAME=packcode3 style="width:100px;">
<OPTION VALUE=0><?=$optionspackcode?></SELECT>
</td>
<td>
<!-- show mysql result for "select Category from skudata where packcode=packcode3" -->
</td>
<td>
<!-- show mysql result for "select SellingUnits from skudata where packcode=packcode3" -->
</td>
<td>
<!-- show mysql result for "select FullPalletQTY from skudata where packcode=packcode3" -->
</td>
<td><input type="text" id="qty" name="qty"></td>
</tr>
<Tr>
<td>
<SELECT NAME=packcode4 style="width:100px;">
<OPTION VALUE=0><?=$optionspackcode?></SELECT>
</td>
<td>
<!-- show mysql result for "select Category from skudata where packcode=packcode4" -->
</td>
<td>
<!-- show mysql result for "select SellingUnits from skudata where packcode=packcode4" -->
</td>
<td>
<!-- show mysql result for "select FullPalletQTY from skudata where packcode=packcode4" -->
</td>
<td><input type="text" id="qty" name="qty"></td>
</tr>
</table>
答案 0 :(得分:2)
您想要从链接到td上方框的数据库中填充数据吗?
如果是这样,你可以使用AJAX,并在选择框的选项上放一个onclick(非常确定应该这样做)。
<select>
<option onclick="myAjaxFunction(this);">Some name</option>
<option onclick="myAjaxFunction(this);">Some other name</option>
</select>
然后你必须创建函数myAjaxFunction,它将包含Ajax请求的代码(http://api.jquery.com/jQuery.ajax/)。 简单的例子可能是:
<script>
function myAjaxFunction(elem) {
$.ajax({
url: 'target/file.php',
success: function(response) {
$("#target-td").html(response);
}
});
}
</script>
最后是一个用AJAX调用的.php文件,包含你的数据库调用。在文件中,您只需回显您想要显示的内容。
理想情况下,您将使用json进行一次调用并将其全部返回。属性
dataType: 'json'
可以添加到$ .ajax()调用中,您可以使用:
echo json_encode($myContent);
在PHP中你json编码php内容(最好是在数组()中)。
这应该指明你的方式:)请告诉我,如果我需要更具体,或提供更好的例子......
<强>更新强>
您可以为要定位的每个td创建唯一的ID。然后创建
<td>
<select>
<option onclick="firstPackCodeAjax('<?=$packcodeValue?>');" value="<?=$packcodeValue?>"><?=$packcodeValue?></option>
</select>
</td>
<td id="categoryTd">
<!-- show mysql result for "select Category from skudata where packcode=packcode1" -->
</td>
<td id="unitsTd">
<!-- show mysql result for "select SellingUnits from skudata where packcode=packcode1" -->
</td>
<td id="palletTd">
<!-- show mysql result for "select FullPalletQTY from skudata where packcode=packcode1" -->
</td>
然后您的AJAX功能将是:
<script>
function firstPackCodeAjax(packCode) {
$.ajax({
url: 'target/file.php',
data: {code: packCode},
dataType: 'json',
success: function(json) {
$("#categoryTd").html(json.Category);
$("#unitsTd").html(json.SellingUnits);
$("#palletTd").html(json.FullPalletQTY);
}
});
}
</script>
这要求数据输出为json,格式为:
[
{ "Category": "Fast cars" },
{ "SellingUnits": "9001" },
{ "FullPalletQTY": "9001" }
];
然后,您将为要拉入AJAX的每个选择创建一个函数。 target / file.php你需要自己创建一个地方。在这里,您获取数据并在json中回显它。祝你好运;)另外,这可以非常容易地进行优化,但以后就可以了......
答案 1 :(得分:1)
您可以使用AJAX。我没有任何示例,但结合AJAX和PHP的w3schools教程是一个很好的起点。 http://w3schools.com/ajax/ajax_aspphp.asp我会修改他们的示例,使用与w3schools网站上找到的类似的javascript函数将所有选项标记值直接输出到您的选择标记中。
希望这有帮助!