This is a good example for a need for attachments in this forum, its a bit of a long post. Sorry...
I've been mainly using PHP since I started this project and have posted up the odd question here - thanks for all the replies!
This one is a bit strange, maybe I'm just missing a simple syntax error but I can't figure it out. I have 2 files both using a similar script, the functionality is exactly the same. The problem is, one works and the other doesn't.
The idea is to make a dynamic listbox which calls a function in its own file to refresh itself with the new information. The second file(hwSpecs.php) doesn't react when the combobox is changed. Look for the function
Ive pretty much given up on finding an error so good luck out there.
Warning, this is a long post.
Heres the working one:
/*///////////
newHWItem.php
/*///////////
<html>
<head>
<script language="JAVASCRIPT">
var lookupWindow = null;
function preload()
{
<?
$strType = $_GET["strType"];
$strBody = "";
global $strBody;
global $strType;
$strBody .= "
<table border=\"0\">
<form action=\"script/hwController.php\" method=\"post\" target=\"Main\" enctype=\"multipart/form-data\">
<tr>
<td>Type:</td>
<td>
<select name=\"lstType\" onChange='javascript:reloadPage();'>
<option>$strType</option>
<option disabled>------</option>
<option>PC/Mac</option>
<option>Printer</option>
<option>General</option>
</select>
</td>
</tr>
<tr>
<td>Serial Number: </td>
<td><input type=text name=txtSerial></td>
<td>Seperate multiple serials by semicolon(
</td>
</tr>
<tr>
<td>Status:</td>
<td>
<select name=\"lstStatus\">
<option>Ok</option>
<option>Faulty</option>
<option>Under Repair</option>
<option>Beyond Repair</option>
</select>
</td>
</tr>
<tr>
<td><a href='javascript:lookup(\"room\"
;'>Room: </a></td>
<td><input type=text name=txtRoom></td>
</tr>
<tr>
<td><a href='javascript:lookup(\"make\"
;'>Make: </a></td>
<td><input type=text name=txtMake></td>
</tr>
<tr>
<td><a href='javascript:lookup(\"model\"
;'>Model: </a></td>
<td><input type=text name=txtModel></td>
</tr>
<tr>
<td>Date Purchased: </td>
<td><input type=text name=txtDate></td>
</tr>
<tr>
<td>Warranty:</td>
<td>
<select name=\"lstWarranty\">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</td>
</tr>
";
if ($strType == "PC/Mac"
{
$strBody .= "<tr><td>Processor: </td><td><input type=text name=txtSpec1></td></tr>";
$strBody .= "<tr><td>Ram: </td><td><input type=text name=txtSpec2></td></tr>";
$strBody .= "<tr><td>Hard Disk: </td><td><input type=text name=txtSpec3></td></tr>";
$strBody .= "<tr><td>Periph 1: </td><td><input type=text name=txtSpec4></td></tr>";
$strBody .= "<tr><td>Periph 2: </td><td><input type=text name=txtSpec5></td></tr>";
$strBody .= "<tr><td>Periph 3: </td><td><input type=text name=txtSpec6></td></tr>";
$strBody .= "<tr><td>Monitor: </td><td><input type=text name=txtSpec7></td></tr>";
$strBody .= "<tr><td><input type=submit name=btnNewItem value=Submit></td></tr>";
}// End of If
else if ($strType == "Printer"
{
$strBody .= "<tr><td>Type: </td><td><select name=lstPrinterType><option>Colour</option><option>B&W</option></select></td></tr>";
$strBody .= "<tr><td>Ram: </td><td><input type=text name=txtSpec1></td></tr>";
$strBody .= "<tr><td>Ink Type: </td><td><input type=text name=txtSpec2></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec3 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec4 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec5 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec6 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec7 value=''></td></tr>";
$strBody .= "<tr><td><input type=submit name=btnNewItem value=Submit></td></tr>";
}// End of If
else if ($strType == "General"
{
$strBody .= "<tr><td>Spec 1: </td><td><input type=text name=txtSpec1></td></tr>";
$strBody .= "<tr><td>Spec 2: </td><td><input type=text name=txtSpec2></td></tr>";
$strBody .= "<tr><td>Spec 3: </td><td><input type=text name=txtSpec3></td></tr>";
$strBody .= "<tr><td>Spec 4: </td><td><input type=text name=txtSpec4></td></tr>";
$strBody .= "<tr><td>Spec 5: </td><td><input type=text name=txtSpec5></td></tr>";
$strBody .= "<tr><td>Spec 6: </td><td><input type=text name=txtSpec6></td></tr>";
$strBody .= "<tr><td>Spec 7: </td><td><input type=text name=txtSpec7></td></tr>";
$strBody .= "<tr><td><input type=submit name=btnNewItem value=Submit></td></tr>";
}// End of If
$strBody .= "</form></table>";
?>
}// End of preload()
function closeLookupWindow()
{
if(lookupWindow != null)
{
if(lookupWindow.closed != true)
{
lookupWindow.close();
}// End of If
}// End of If
lookupWindow = null;
}// End of closeLookupWindow()
function lookup(strType)
{
closeLookupWindow();
var option;
if(strType == "make"
{
var option = document.forms[0].lstType.value;
}// End of If
else if(strType == "model"
{
var option = document.forms[0].txtMake.value;
}// End of If
url = "script/lookup.php?strWindowType=" + strType + "&strOption=" + option;
strOptions = "width=300 ,height=300 ,resizable=no, scrollbars=yes";
lookupWindow = open(url, null, strOptions);
}// End of lookupRoom()
function reloadPage()
{
parent.Main.location.href="newHWItem.php?strType=" + document.forms[0].lstType.value;
}// End of reloadPage()
</script>
</head>
<body bgcolor="#DDDDDD">
<?
echo $strBody;
?>
</body>
</html>
/*//////////////////
End of newHWItem.php
/*//////////////////
And the one that won't work,
/*/////////
hwSpecs.php
/*/////////
<html>
<head>
<script language="JAVASCRIPT">
function preload()
{
<?
$intInfoNo = $_GET["intInfoNo"];
include("/vweb/stockcontrol/html/script/hwController.php"
;
$serialArray = getSerials($intInfoNo);
$strCurrentSerial = $_GET["strCurrentSerial"];
$strIsEdit = $_GET["strIsEdit"];
if ($strCurrentSerial == ""
{
$strCurrentSerial = $serialArray[0];
}// End of If
$strType = getHWType($intInfoNo);
$specArray = getSpecs($strCurrentSerial);
$strBody = "";
global $strBody;
global $intInfoNo;
global $serialArray;
global $strCurrentSerial;
global $strType;
$strBody .= "
<table border=\"0\">
<form method=\"post\" target=\"Foot\" enctype=\"multipart/form-data\">
<tr>
<td bgcolor='#EFEFEF'>Serial:</td>
";
if ($strType == "PC/Mac"
{
$strBody .= "<td bgcolor='#EFEFEF'>Processor: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Ram: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Hard Disk: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Periph 1: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Periph 2: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Periph 3: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Monitor: </td>";
}// End of If
else if ($strType == "Printer"
{
$strBody .= "<td bgcolor='#EFEFEF'>Type: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Ram: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Ink Type: </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
}// End of If
else if ($strType == "General"
{
$strBody .= "<td bgcolor='#EFEFEF'>Spec 1: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 2: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 3: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 4: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 5: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 6: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 7: </td>";
}// End of If
$strBody .= "<td bgcolor='#EFEFEF'>Status</td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
if($strIsEdit == "TRUE"
{
$strBody .= "
</tr>
<tr>
<td bgcolor='#EEEEEE'><input type=text name=txtSerial value=$strCurrentSerial></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec0 value=$specArray0></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec1 value=$specArray1></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec2 value=$specArray2></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec3 value=$specArray3></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec4 value=$specArray4></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec5 value=$specArray5></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec6 value=$specArray6></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec7 value=$specArray7></td>
<input type=hidden name=strType value=$strType>
<td><input type=submit name=btnEditHW value=Edit></td>
</tr>
";
}// End of If
else
{
$strBody .= "
</tr>
<tr>
<td>
<select name=\"lstSerial\" onChange='javascript:reloadPage();'>
<option>$strCurrentSerial</option>
<option disabled>-----------</option>
";
for($i=0;$i<count($serialArray);$i++)
{
$strBody .= "<option>$serialArray[$i]</option>";
}// End of For
$strBody .= " </select>
</td>
<td bgcolor='#EEEEEE'>$specArray[0]<input type=hidden name=specArray0 value=$specArray[0]></td>
<td bgcolor='#EEEEEE'>$specArray[1]<input type=hidden name=specArray1 value=$specArray[1]></td>
<td bgcolor='#EEEEEE'>$specArray[2]<input type=hidden name=specArray2 value=$specArray[2]></td>
<td bgcolor='#EEEEEE'>$specArray[3]<input type=hidden name=specArray3 value=$specArray[3]></td>
<td bgcolor='#EEEEEE'>$specArray[4]<input type=hidden name=specArray4 value=$specArray[4]></td>
<td bgcolor='#EEEEEE'>$specArray[5]<input type=hidden name=specArray5 value=$specArray[5]></td>
<td bgcolor='#EEEEEE'>$specArray[6]<input type=hidden name=specArray6 value=$specArray[6]></td>
<td bgcolor='#EEEEEE'>$specArray[7]<input type=hidden name=specArray7 value=$specArray[7]></td>
<input type=hidden name=strType value=$strType>
<td><input type=button value=Edit onClick='javascript:loadEditPage();'></td>
</tr>
";
}// End of Else
$strBody .= "</form></table>";
?>
}// End of preload()
function reloadPage()
{
alert("reloadPage"
;
parent.Foot.location.href="hwSpecs.php?intInfoNo=" + $intInfoNo + "&strCurrentSerial=" + document.forms[0].lstSerial.value;
}// End of reloadPage()
function loadEditPage()
{
alert("loadEditPage"
;
parent.Foot.location.href="hwSpecs.php?intInfoNo=" + $intInfoNo + "&strCurrentSerial=" + document.forms[0].lstSerial.value&strIsEdit=\"TRUE\";
}// End of loadEditPage()
</script>
</head>
<body bgcolor="#DDDDDD">
<?
echo $strBody;
?>
</body>
</html>
I've been mainly using PHP since I started this project and have posted up the odd question here - thanks for all the replies!
This one is a bit strange, maybe I'm just missing a simple syntax error but I can't figure it out. I have 2 files both using a similar script, the functionality is exactly the same. The problem is, one works and the other doesn't.
The idea is to make a dynamic listbox which calls a function in its own file to refresh itself with the new information. The second file(hwSpecs.php) doesn't react when the combobox is changed. Look for the function
Ive pretty much given up on finding an error so good luck out there.
Warning, this is a long post.
Heres the working one:
/*///////////
newHWItem.php
/*///////////
<html>
<head>
<script language="JAVASCRIPT">
var lookupWindow = null;
function preload()
{
<?
$strType = $_GET["strType"];
$strBody = "";
global $strBody;
global $strType;
$strBody .= "
<table border=\"0\">
<form action=\"script/hwController.php\" method=\"post\" target=\"Main\" enctype=\"multipart/form-data\">
<tr>
<td>Type:</td>
<td>
<select name=\"lstType\" onChange='javascript:reloadPage();'>
<option>$strType</option>
<option disabled>------</option>
<option>PC/Mac</option>
<option>Printer</option>
<option>General</option>
</select>
</td>
</tr>
<tr>
<td>Serial Number: </td>
<td><input type=text name=txtSerial></td>
<td>Seperate multiple serials by semicolon(

</tr>
<tr>
<td>Status:</td>
<td>
<select name=\"lstStatus\">
<option>Ok</option>
<option>Faulty</option>
<option>Under Repair</option>
<option>Beyond Repair</option>
</select>
</td>
</tr>
<tr>
<td><a href='javascript:lookup(\"room\"

<td><input type=text name=txtRoom></td>
</tr>
<tr>
<td><a href='javascript:lookup(\"make\"

<td><input type=text name=txtMake></td>
</tr>
<tr>
<td><a href='javascript:lookup(\"model\"

<td><input type=text name=txtModel></td>
</tr>
<tr>
<td>Date Purchased: </td>
<td><input type=text name=txtDate></td>
</tr>
<tr>
<td>Warranty:</td>
<td>
<select name=\"lstWarranty\">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</td>
</tr>
";
if ($strType == "PC/Mac"

{
$strBody .= "<tr><td>Processor: </td><td><input type=text name=txtSpec1></td></tr>";
$strBody .= "<tr><td>Ram: </td><td><input type=text name=txtSpec2></td></tr>";
$strBody .= "<tr><td>Hard Disk: </td><td><input type=text name=txtSpec3></td></tr>";
$strBody .= "<tr><td>Periph 1: </td><td><input type=text name=txtSpec4></td></tr>";
$strBody .= "<tr><td>Periph 2: </td><td><input type=text name=txtSpec5></td></tr>";
$strBody .= "<tr><td>Periph 3: </td><td><input type=text name=txtSpec6></td></tr>";
$strBody .= "<tr><td>Monitor: </td><td><input type=text name=txtSpec7></td></tr>";
$strBody .= "<tr><td><input type=submit name=btnNewItem value=Submit></td></tr>";
}// End of If
else if ($strType == "Printer"

{
$strBody .= "<tr><td>Type: </td><td><select name=lstPrinterType><option>Colour</option><option>B&W</option></select></td></tr>";
$strBody .= "<tr><td>Ram: </td><td><input type=text name=txtSpec1></td></tr>";
$strBody .= "<tr><td>Ink Type: </td><td><input type=text name=txtSpec2></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec3 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec4 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec5 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec6 value=''></td></tr>";
$strBody .= "<tr><td><input type=hidden name=txtSpec7 value=''></td></tr>";
$strBody .= "<tr><td><input type=submit name=btnNewItem value=Submit></td></tr>";
}// End of If
else if ($strType == "General"

{
$strBody .= "<tr><td>Spec 1: </td><td><input type=text name=txtSpec1></td></tr>";
$strBody .= "<tr><td>Spec 2: </td><td><input type=text name=txtSpec2></td></tr>";
$strBody .= "<tr><td>Spec 3: </td><td><input type=text name=txtSpec3></td></tr>";
$strBody .= "<tr><td>Spec 4: </td><td><input type=text name=txtSpec4></td></tr>";
$strBody .= "<tr><td>Spec 5: </td><td><input type=text name=txtSpec5></td></tr>";
$strBody .= "<tr><td>Spec 6: </td><td><input type=text name=txtSpec6></td></tr>";
$strBody .= "<tr><td>Spec 7: </td><td><input type=text name=txtSpec7></td></tr>";
$strBody .= "<tr><td><input type=submit name=btnNewItem value=Submit></td></tr>";
}// End of If
$strBody .= "</form></table>";
?>
}// End of preload()
function closeLookupWindow()
{
if(lookupWindow != null)
{
if(lookupWindow.closed != true)
{
lookupWindow.close();
}// End of If
}// End of If
lookupWindow = null;
}// End of closeLookupWindow()
function lookup(strType)
{
closeLookupWindow();
var option;
if(strType == "make"

{
var option = document.forms[0].lstType.value;
}// End of If
else if(strType == "model"

{
var option = document.forms[0].txtMake.value;
}// End of If
url = "script/lookup.php?strWindowType=" + strType + "&strOption=" + option;
strOptions = "width=300 ,height=300 ,resizable=no, scrollbars=yes";
lookupWindow = open(url, null, strOptions);
}// End of lookupRoom()
function reloadPage()
{
parent.Main.location.href="newHWItem.php?strType=" + document.forms[0].lstType.value;
}// End of reloadPage()
</script>
</head>
<body bgcolor="#DDDDDD">
<?
echo $strBody;
?>
</body>
</html>
/*//////////////////
End of newHWItem.php
/*//////////////////
And the one that won't work,
/*/////////
hwSpecs.php
/*/////////
<html>
<head>
<script language="JAVASCRIPT">
function preload()
{
<?
$intInfoNo = $_GET["intInfoNo"];
include("/vweb/stockcontrol/html/script/hwController.php"

$serialArray = getSerials($intInfoNo);
$strCurrentSerial = $_GET["strCurrentSerial"];
$strIsEdit = $_GET["strIsEdit"];
if ($strCurrentSerial == ""

{
$strCurrentSerial = $serialArray[0];
}// End of If
$strType = getHWType($intInfoNo);
$specArray = getSpecs($strCurrentSerial);
$strBody = "";
global $strBody;
global $intInfoNo;
global $serialArray;
global $strCurrentSerial;
global $strType;
$strBody .= "
<table border=\"0\">
<form method=\"post\" target=\"Foot\" enctype=\"multipart/form-data\">
<tr>
<td bgcolor='#EFEFEF'>Serial:</td>
";
if ($strType == "PC/Mac"

{
$strBody .= "<td bgcolor='#EFEFEF'>Processor: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Ram: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Hard Disk: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Periph 1: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Periph 2: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Periph 3: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Monitor: </td>";
}// End of If
else if ($strType == "Printer"

{
$strBody .= "<td bgcolor='#EFEFEF'>Type: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Ram: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Ink Type: </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
}// End of If
else if ($strType == "General"

{
$strBody .= "<td bgcolor='#EFEFEF'>Spec 1: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 2: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 3: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 4: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 5: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 6: </td>";
$strBody .= "<td bgcolor='#EFEFEF'>Spec 7: </td>";
}// End of If
$strBody .= "<td bgcolor='#EFEFEF'>Status</td>";
$strBody .= "<td bgcolor='#EFEFEF'> </td>";
if($strIsEdit == "TRUE"

{
$strBody .= "
</tr>
<tr>
<td bgcolor='#EEEEEE'><input type=text name=txtSerial value=$strCurrentSerial></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec0 value=$specArray0></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec1 value=$specArray1></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec2 value=$specArray2></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec3 value=$specArray3></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec4 value=$specArray4></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec5 value=$specArray5></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec6 value=$specArray6></td>
<td bgcolor='#EEEEEE'><input type=text name=txtSpec7 value=$specArray7></td>
<input type=hidden name=strType value=$strType>
<td><input type=submit name=btnEditHW value=Edit></td>
</tr>
";
}// End of If
else
{
$strBody .= "
</tr>
<tr>
<td>
<select name=\"lstSerial\" onChange='javascript:reloadPage();'>
<option>$strCurrentSerial</option>
<option disabled>-----------</option>
";
for($i=0;$i<count($serialArray);$i++)
{
$strBody .= "<option>$serialArray[$i]</option>";
}// End of For
$strBody .= " </select>
</td>
<td bgcolor='#EEEEEE'>$specArray[0]<input type=hidden name=specArray0 value=$specArray[0]></td>
<td bgcolor='#EEEEEE'>$specArray[1]<input type=hidden name=specArray1 value=$specArray[1]></td>
<td bgcolor='#EEEEEE'>$specArray[2]<input type=hidden name=specArray2 value=$specArray[2]></td>
<td bgcolor='#EEEEEE'>$specArray[3]<input type=hidden name=specArray3 value=$specArray[3]></td>
<td bgcolor='#EEEEEE'>$specArray[4]<input type=hidden name=specArray4 value=$specArray[4]></td>
<td bgcolor='#EEEEEE'>$specArray[5]<input type=hidden name=specArray5 value=$specArray[5]></td>
<td bgcolor='#EEEEEE'>$specArray[6]<input type=hidden name=specArray6 value=$specArray[6]></td>
<td bgcolor='#EEEEEE'>$specArray[7]<input type=hidden name=specArray7 value=$specArray[7]></td>
<input type=hidden name=strType value=$strType>
<td><input type=button value=Edit onClick='javascript:loadEditPage();'></td>
</tr>
";
}// End of Else
$strBody .= "</form></table>";
?>
}// End of preload()
function reloadPage()
{
alert("reloadPage"

parent.Foot.location.href="hwSpecs.php?intInfoNo=" + $intInfoNo + "&strCurrentSerial=" + document.forms[0].lstSerial.value;
}// End of reloadPage()
function loadEditPage()
{
alert("loadEditPage"

parent.Foot.location.href="hwSpecs.php?intInfoNo=" + $intInfoNo + "&strCurrentSerial=" + document.forms[0].lstSerial.value&strIsEdit=\"TRUE\";
}// End of loadEditPage()
</script>
</head>
<body bgcolor="#DDDDDD">
<?
echo $strBody;
?>
</body>
</html>