Well i am not sure if this is more of a coldfusion problem or a javscript problem. So if i asked my question in the wrong section let me know an all move it to the correct place.
what i am trying to display previously entered multiple fields. I am able to get my serial fields to display correctly, but i can not display my parts fields correctly.
Currently this is what it does
serial information 1
parts 1
parts 2
serial information 2
parts 1
parts 2
and what it needs to do
serial information 1
parts 1
serial information 2
parts 1
the problem is instead of the part going with the correct serial. it basically puts the information for both parts i added under both of the 2 serials I am also having trouble deleting fields an adding fields for the parts fields.
if someone could explain what i am doing wrong with the parts i would really appreciate it. I know it has to do with the count, just not sure what i am doing wrong
here is the javascript for serial and parts that allows me to add serials and parts
Expand|Select|Wrap|Line Numbers
- <!---Allows us to add serial information multiple times --->
- <script type="text/javascript">
- <!---Allows us to add multiple fields --->
- function addInput(divName){
- var dynamic = document.getElementById('dynamicInput');
- var thevalue = document.getElementById('theValue');
- var count = (document.getElementById('theValue').value -1)+ 2;
- thevalue.value = count;
- var newdiv = document.createElement('div');
- var getparts = document.createElement('div');
- var divIdName = 'dynamic'+count+'Input';
- var partc = 'partscount'+count;
- newdiv.setAttribute('id',divIdName);
- <!--- Adds Extra fields for Model No, Product Type, and Type of Hardware Failure --->
- newdiv.innerHTML =
- "<table class='zpExpandedTable' id='modeltable'>" +
- "<th class='sectiontitletick' colspan='7'>Serial Information "+ count +" </th>" +
- "<tr>" +
- "<td id='paddingformultitop'>Model No: </td>" +
- "</td>" +
- "<td>" +
- "<select name='modelno_" + count + "' >" +
- "<option value=''>Make A Selection</option>" +
- "<cfoutput query='models'>" +
- "<option value='#model#'>#model#</option>" +
- "</cfoutput>" +
- "</select>" +
- "</td>" +
- "<td>" +
- " Product Type:" +
- "</td>" +
- "<td>" +
- "<select name='producttype_" + count + "'>" +
- "<option value='' selected>No Choice</option>" +
- "<cfoutput query='getProdType'>" +
- "<option value='#pk_productType#'>#pk_productType#</option>" +
- "</cfoutput>" +
- "</select>" +
- "</td>" +
- "<td class='red'>" +
- " Type Of Hardware Failure*:" +
- "</td>" +
- "<td>" +
- "<select name='hardwarefailure_" + count + "'>" +
- "<option value='' selected>Make A Selection</option>" +
- "<cfoutput query='getHardwareFail'>" +
- "<option value='#pk_hardwareFailure#'>#pk_hardwareFailure#</option>" +
- "</cfoutput>" +
- "</select>" +
- "</td>" +
- "</tr>" +
- "<table>";
- <!--- Adds Extra fields for Serial Number and Software/Hardware --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='modeltable'>" +
- "<tr>" +
- "<td id='paddingformultitop'>" +
- "Serial Number: " +
- "<input type='text' name='serialnum_" + count + "'>" +
- " Software/Hardware: " +
- "<select name='softhardware_" + count + "'>" +
- "<option value='' selected>No Choice</option>" +
- "<cfoutput query='getSoftHard'>" +
- "<option value='#pk_softwareHardware#'>#pk_softwareHardware#</option>" +
- "</cfoutput>" +
- "</select>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!--- Adds Extra fields for Description --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='3' cellspacing='0'>" +
- "<tr>" +
- "<td id='paddingformutli'>" +
- "Description: " +
- "</td>" +
- "<td class='descriptionmoveinmulti'>" +
- "( You may enter up to 1000 characters. )"+
- "<br>" +
- "<textarea maxlength='1000' onkeyup='return descriptionmaxlength(this)' onkeydown='return descriptionmaxlength(this)'rows='4' cols='60' name='thedescription_" + count + "'></textarea>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!--- Adds Extra fields for Resolution --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td id='paddingformutli'>" +
- "Resolution: " +
- "</td>" +
- "<td class='resolutionmoveinmulti'>" +
- "( You may enter up to 1500 characters. )"+
- "<br>" +
- "<textarea maxlength='1500' onkeyup='return resolutionmaxlength(this)' onkeydown='return resolutionmaxlength(this)' rows='4' cols='60' name='resolution_" + count + "'></textarea>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!--- Adds Extra fields for Resolution Date, Current Date (for resolution date) and resolution vertified as effective by --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoldatetab' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td id='paddingformultitop'>" +
- "Resolution Date: (MM/DD/YYYY) " +
- "</td>" +
- "<td>" +
- "<input type='text' name='resdate_" + count + "' value='' > " +
- " Current Date: " +
- "<input type='checkbox' name='currentdateresol_" + count + "' onClick=resdate_" + count + ".value=fill_date()>" +
- "</td>" +
- "<td>" +
- "Resolution Verified as effective by: " +
- "</td>" +
- "<td>" +
- "<select name='resvertified_" + count + "'>" +
- "<option value='' selected>Make A Selection</option>" +
- "<cfoutput query='gettech'><option value='#fname# #lname#'>#fname# #lname#</option></cfoutput>" +
- "</select>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!--- Adds Extra fields for Vertification Date, Current Date (for vertification date) and resolution vertified as effective by --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td id='paddingformultitop'>" +
- "Verification Date: (MM/DD/YYYY) " +
- "</td>" +
- "<td class='vertificationmoveinmulti'>" +
- "<input type='text' name='vertifidate_" + count + "'> " +
- " Current Date: " +
- "<input type='checkbox' name='currentdatevert_" + count + "' onClick=vertifidate_" + count + ".value=fill_date()>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!--- Adds Extra fields for Dept/Vendor Responsibility --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td class='red' id='paddingformultitop'>" +
- "Dept/Vendor Responsibility*: " +
- "<select name='deptvendor_" + count + "'>" +
- "<option value='' selected>Make A Selection</option>" +
- "<cfoutput query='getDeptVendor'>" +
- "<option value='#pk_deptVendor#'>#pk_deptVendor#</option>" +
- " </cfoutput>" +
- "</select>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!--- Adds Extra fields for RMA Data Only --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td id='paddingformultitop'>" +
- "RMA Data Only: " +
- "</td>" +
- "<td class='rmanmoveinmulti'>" +
- "( You may enter up to 1000 characters. )"+
- "<br/>" +
- "<textarea maxlength='1000' onkeyup='return rmamaxlength(this)' onkeydown='return rmamaxlength(this)' rows='4' cols='60' name='rma_" + count + "'></textarea> " +
- "</td>" +
- "</tr>" +
- "</table>" +
- "<input type='hidden' name='"+partc+"' id='"+partc+"' value='0'>" +
- "<input type='hidden' name='serialcount' id='serialcount' value='" + count + "'>";
- <!--- Adds Delete to every ticket --->
- newdiv.innerHTML = newdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td>" +
- "<input type='button' class='removeticket' value='Remove Serial ""+ count +""' onclick=\"removeElement(\'"+divIdName+"\')\"></a>" +
- "</td>" +
- "</tr>" +
- "<tr>" +
- "<td>" +
- "<input type='button' class='addticket' value='Add Parts' onclick=\"addpartInput(\'"+divIdName+"\')\">" +
- "</td>" +
- "</tr>" +
- "</table>";
- document.getElementById(divName).appendChild(newdiv);
- }
- <!---Allows us to remove multiple fields --->
- function removeElement(divNum) {
- var d = document.getElementById('dynamicInput');
- var olddiv = document.getElementById(divNum);
- d.removeChild(olddiv);
- }
- </script>
- <!---Allows us to add PARTS information multiple times--->
- <script type="text/javascript">
- <!---Adds multiple fields for parts --->
- function addpartInput(partName){
- var parts = document.getElementById(partName);
- <!---('partsInput')--->
- <!---this works if only want to add a part under the serial you are working with, but if you have
- serial information 1
- and serial information 2 an want to add information to serial information 1 you cant because parts always appear under the last serial information added if you click add parts--->
- var getparts = document.getElementById('div');
- <!---var avalue = document.getElementById('aValue');--->
- var serialno = partName.replace("dynamic","").replace("Input","");
- var avalue = document.getElementById("partscount"+serialno);
- <!---var count = (document.getElementById('avalue').value -1)+ 2;--->
- var count = parseInt(avalue.value) + 1;
- avalue.value = count;
- var partdiv = document.createElement('div');
- <!---var partIdName = 'part'+count+'Name';--->
- var partIdName = 'part' + count + 'Name' + serialno;
- <!---'parts'+count+'Input'--->
- partdiv.setAttribute('id',partIdName);
- <!--- Adds Extra fields for parts table --->
- partdiv.innerHTML =
- <!---what used originally for this tableclass='createticketables' id='spaceup'--->
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0' >" +
- "<th class='sectiontitle' colspan='7'>Parts Information "+ count +" Serial Information "+serialno+"</th>" +
- "<tr>" +
- "<td class='indent' id='formfieldpadding'>HC P/N: " +
- "<input type='text' name='hcpn_" + count + "_"+serialno+"' style='margin:0px'></td>" +
- "<td class='red'>" +
- "Parts been returned* " +
- "<input type='checkbox' name='partsreturn_" + count + "_"+serialno+"' value='1'>" +
- "</td>" +
- "<td>" +
- "<td class='indent'>Defective<input type='checkbox' name='defective_" + count +"_"+serialno+"' value='1'>" +
- "</td>" +
- "</td>" +
- "</tr>" +
- "</table>";
- <!---"<table table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0' >" +
- "<tr>" +
- "<td class='indent' id='formfieldpadding'>Follow up Date:(MM/DD/YYYY) " +
- "<input type='text' name='followdate_" + count + "' value='' size='8'/> " +
- "Current Date<input type='checkbox' name='followcheck_"+ count +"' value='' onClick='followdate.value=fill_date()'/></td>" +
- "<td>On Site:</td>" +
- "<td><select name='onsite_" + count +"'>" +
- "<option value='No Choice' selected>No Choice</option>" +
- "<option value='Yes'>Yes</option>" +
- "<option value='No'>No</option>" +
- "</select><td>" +
- "<td># of Onsite:</td><td><select name='numonsite_" + count +"'>" +
- "<option value='' selected>No Choice</option>" +
- "<cfloop from='0' to='10' index='nonsite'><cfoutput>" +
- "<option value='#nonsite#'>#nonsite#</option></cfoutput></cfloop>" +
- "</select><td>" +
- "</tr>" +
- "</table>";
- --->
- <!--- Adds Delete to every ticket --->
- partdiv.innerHTML = partdiv.innerHTML +
- "<table class='zpExpandedTable' id='resoltable' cellpadding='1' cellspacing='0'>" +
- "<tr>" +
- "<td>" +
- "<input type='button' class='removeticket' value='Remove Parts ""+count +""' onclick=\"removetheElement(\'"+partIdName+"\')\"></a>" +
- "</td>" +
- "</td>" +
- "</tr>" +
- "</table>";
- document.getElementById(partName).appendChild(partdiv);
- }
- <!---Allows us to remove multiple fields--->
- function removetheElement(divNum) {
- var d = document.getElementById('partsInput');
- var olddiv = document.getElementById(divNum);
- olddiv.parentNode.removeChild(olddiv);
- }
- </script>
here is the html/coldfusion that displays what was previously entered for serials and parts.
Expand|Select|Wrap|Line Numbers
- <!--- Ticket Information
- This display the ticket Information--->
- <!---<input type="hidden" value="0" id="theValue" />--->
- <div id="dynamicInput">
- <!--- All Ticket Information Appears Here--->
- <!--- Shows what was previously entered for Model No, Product Type, and Type of Hardware Failure --->
- <cfset count = 0>
- <!---<cfif serial.recordcount is 0>--->
- <cfoutput query="serial">
- <cfset model_no = #model_no#>
- <cfset product_type = #product_type#>
- <cfset type_hardware_failure = #type_hardware_failure#>
- <cfset software_hardware = #software_hardware#>
- <cfset resolution_verified_by = #resolution_verified_by#>
- <cfset dept_responsibility = #dept_responsibility#>
- <cfset count = count + 1>
- <div id="dynamic#count#Input">
- <table class="zpExpandedTable" id="modeltable">
- <th class="sectiontitletick" colspan="7">
- Serial Information #count# </th>
- <tr>
- <td id="paddingformultitop">Model No: </td>
- </td>
- <td>
- <select name="modelno_#count#">
- <option value="">Make A Selection</option>
- <cfloop query="models">
- <option value="#model#"<cfif #model# is #model_no#>selected</cfif>>#model#</option>
- </cfloop>
- </select>
- </td>
- <td>
- Product Type:
- </td>
- <td>
- <select name="producttype_#count#">
- <option value="" selected>No Choice</option>
- <cfloop query="getProdType">
- <option value="#pk_productType#"<cfif #pk_productType# is #product_type#>selected</cfif>>#pk_productType#</option>
- </cfloop>
- </select>
- </td>
- <td class="red">
- Type Of Hardware Failure*:
- </td>
- <td>
- <select name="hardwarefailure_#count#">
- <option value="" selected>Make A Selection</option>
- <cfloop query="getHardwareFail">
- <option value="#pk_hardwareFailure#"<cfif #pk_hardwareFailure# is #type_hardware_failure#>selected</cfif>>#pk_hardwareFailure#</option>
- </cfloop>
- </select>
- </td>
- </tr>
- <table>
- <!--- Shows what was previously entered for Serial Number and Software/Hardware --->
- <table class="zpExpandedTable" id="modeltable">
- <tr>
- <td id="paddingformultitop">
- Serial Number:
- <input type="text" name="serialnum_#count#" value="#pka_serialNo#">
- Software/Hardware:
- <select name="softhardware_#count#">
- <option value="" selected>No Choice</option>
- <cfloop query="getSoftHard">
- <option value="#pk_softwareHardware#"<cfif #pk_softwareHardware# is #software_hardware#>selected</cfif>>#pk_softwareHardware#</option>
- </cfloop>
- </select>
- </td>
- </tr>
- </table>
- <!--- Shows what was previously entered for Description --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="3" cellspacing="0">
- <tr>
- <td id="paddingformutli">
- Description:
- </td>
- <td class="descriptionmoveinmulti">
- #description#
- ( You may enter up to 1000 characters. )
- <br>
- <textarea maxlength='1000' onkeyup='return descriptionmaxlength(this)' onkeydown='return descriptionmaxlength(this)'rows='4' cols='60' name="thedescription_#count#"></textarea>
- </td>
- </tr>
- </table>
- <!---Shows what was previously entered for Resolution --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td id="paddingformutli">
- Resolution:
- </td>
- <td class="resolutionmoveinmulti">
- ( You may enter up to 1500 characters. )
- <br>
- <textarea maxlength="1500" onkeyup="return resolutionismaxlength(this)" onkeydown="return resolutionismaxlength(this)" rows="4" cols="60" name="resolution_#count#">#resolution#</textarea>
- </td>
- </tr>
- </table>
- <!--- Shows what was previously entered for Resolution Date, Current Date (for resolution date) and resolution vertified as effective by --->
- <table class="zpExpandedTable" id="resoldatetab" cellpadding="1" cellspacing="0">
- <tr>
- <td id="paddingformultitop">
- Resolution Date: (MM/DD/YYYY)
- </td>
- <td>
- <input type="text" name="resdate_#count#" value="#DateFormat(resolution_date,'mm/dd/yyyy')#">
- Current Date:
- <input type="checkbox" name="currentdateresol_#count#"
- onClick="resdate_#count#.value=fill_date()">
- </td>
- <td>
- Resolution Verified as effective by:
- </td>
- <td>
- <select name="resvertified_#count#">
- <option value="" selected>Make A Selection</option>
- <cfloop query="gettech">
- <option value="#fname# #lname#"<cfif "#fname# #lname#" is #resolution_verified_by#>
- selected</cfif>>#fname# #lname#</option>
- </cfloop>
- </select>
- </td>
- </tr>
- </table>
- <!--- Shows what was previously entered for Vertification Date, Current Date (for vertification date) --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td id="paddingformultitop">
- Verification Date: (MM/DD/YYYY)
- </td>
- <td class="vertificationmoveinmulti">
- <input type="text" name="vertifidate_#count#" value="#DateFormat(verification_date,'mm/dd/yyyy')#">
- Current Date:
- <input type="checkbox" name="currentdatevert_#count#"
- onClick="vertifidate_#count#.value=fill_date()">
- </td>
- </tr>
- </table>
- <!--- Shows what was previously entered for Dept/Vendor Responsibility --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td class="red" id="paddingformultitop">
- Dept/Vendor Responsibility*:
- <select name="deptvendor_#count#">
- <option value="" selected>Make A Selection</option>
- <cfloop query="getDeptVendor">
- <option value="#pk_deptVendor#"<cfif #pk_deptVendor# is #dept_responsibility#>selected</cfif>>#pk_deptVendor#</option>
- </cfloop>
- </select>
- </td>
- </tr>
- </table>
- <!--- Shows what was previously entered for RMA Data Only --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td id="paddingformultitop">
- RMA Data Only:
- </td>
- <td class="rmanmoveinmulti">
- ( You may enter up to 1000 characters. )
- <br/>
- <textarea maxlength="1000" onkeyup="return rmaismaxlength(this)" onkeydown="return rmaismaxlength(this)" rows="4" cols="60" name="rma_#count#" >#rma_data#</textarea>
- </td>
- </tr>
- </table>
- <input type="hidden" name="serialcount" value="#count#">
- <!--- Adds Delete to every ticket --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td>
- <input type="button" class="removeticket" value="Remove Serial #count#" onclick="removeElement('dynamic#count#Input')">
- </td>
- </tr>
- <tr>
- <td>
- <!---<input type='button' class='addticket' value='Add Parts' onclick="addpartInput('divIdName')">--->
- </td>
- </tr>
- </table>
- <cfset count1 = 0>
- <!---<cfif serial.recordcount is 0>--->
- <cfloop query="parts">
- <cfset count1 = count1 + 1>
- <!---THIS IS THE PARTS SECTION--->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <th class="sectiontitle" colspan="7">Parts Information #count1# Serial Information #count#</th>
- <tr>
- <td class='indent' id='formfieldpadding'>HC P/N: <input type='text' name="hcpn_#count1#" style="margin:0px" value="#hc_partNo#"></td>
- <td class="red">
- Parts been returned*
- <input type="checkbox" name="partsreturn_#count1#" value="#part_returned#"<cfif #part_returned# eq "1">checked=yes</cfif>/>
- </td>
- <td>
- <td class="indent">Defective<input type="checkbox" name="defective_#count#1" value="#defective#"<cfif #defective# eq "1">checked=yes</cfif>/></td>
- </td>
- </tr>
- </table>
- <!--- Adds Delete to every ticket --->
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td>
- <input type="button" class="removeticket" value="Remove Parts #count1#"
- onclick="removetheElement('partIdName')"></a>
- </td>
- </td>
- </tr>
- </table>
- </cfloop>
- </div>
- </cfoutput>
- <input type="hidden" value="<cfoutput>#count#</cfoutput>" name="theValue" id="theValue" />
- <!---If have any blanks in serial table it will make field appear--->
- <cfoutput query="serial">
- <cfset model_no = #model_no#>
- <cfset product_type = #product_type#>
- <cfset type_hardware_failure = #type_hardware_failure#>
- <cfset pka_serialNo = #pka_serialNo#>
- <cfset software_hardware = #software_hardware#>
- <cfset description = #description#>
- <cfset resolution = #resolution#>
- <cfset resolution_date = #resolution_date#>
- <cfset resolution_verified_by = #resolution_verified_by#>
- <cfset verification_date = #verification_date#>
- <cfset dept_responsibility = #dept_responsibility#>
- <cfset rma_data = #rma_data#>
- </cfoutput>
- <cfif serial.recordcount is 0>
- <cfset model_no = "">
- <cfset product_type = "">
- <cfset type_hardware_failure = "">
- <cfset pka_serialNo = "">
- <cfset software_hardware = "">
- <cfset description = "">
- <cfset resolution = "">
- <cfset resolution_date = "">
- <cfset resolution_verified_by = "">
- <cfset verification_date = "">
- <cfset dept_responsibility = "">
- <cfset rma_data = "">
- <cfinclude template="serialdisplay.cfm">
- </cfif>
- <!---
- <cfset count = 0>
- <cfoutput query="parts">
- <cfset count = count + 1>
- <div id="partscount#count#">
- <table class="zpExpandedTable" id="resoltable" cellpadding="1" cellspacing="0">
- <tr>
- <td class="indent" id="formfieldpadding">Follow up Date:(MM/DD/YYYY)
- <input type="text" name="followdate_#count#" value="" size="8"/>
- Current Date<input type="checkbox" name="followcheck_#count#" value="" onClick="followdate.value=fill_date()"/></td>
- <td>On Site:</td>
- <td><select name="onsite_#count#">
- <option value="No Choice" selected>No Choice</option>
- <option value="Yes">Yes</option>
- <option value="No">No</option>
- </select><td>
- <td># of Onsite:</td><td><select name="numonsite_#count#">
- <option value="" selected>No Choice</option>
- <cfloop from="0" to="10" index="nonsite"><cfoutput>
- <option value="#nonsite#">#nonsite#</option></cfoutput></cfloop>
- </select><td>
- </tr>
- </table>
- <input type="hidden" name="serialcount" value="#count#">
- <!--- Parts Information, display parts if have or don't have a value --->
- <cfoutput query="parts">
- <cfset hc_partNo = #hc_partNo#>
- <cfset part_returned = #part_returned#>
- <cfset defective = #defective#>
- <cfinclude template="partsdisplay.cfm">
- </cfoutput>
- <cfif parts.recordcount is 0>
- <cfset hc_partNo = "">
- <cfset part_returned = "">
- <cfset defective = "">
- <cfoutput><cfinclude template="partsdisplay.cfm"></cfoutput>
- </cfif>
- ---></div>
- <input type="button" class="addticket" value="Add Serial" onClick="addInput('dynamicInput');" >
Rach