displaying previously entered multiple fields

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bonneylake
    Contributor
    • Aug 2008
    • 769

    displaying previously entered multiple fields

    Hey Everyone,

    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

    Code:
    <!---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:&nbsp;&nbsp;&nbsp;&nbsp;</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>" +
    "&nbsp;&nbsp;&nbsp;&nbsp;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'>" +
    "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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:&nbsp;&nbsp;" +
    "<input type='text' name='serialnum_" + count + "'>" +
    "&nbsp;&nbsp;&nbsp;&nbsp;Software/Hardware:&nbsp;&nbsp;" +
    "<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:&nbsp;&nbsp;" + 
    "</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:&nbsp;&nbsp;" +
    "</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:&nbsp;(MM/DD/YYYY)&nbsp;&nbsp;" +
    "</td>" +
    "<td>" +
    "<input type='text' name='resdate_" + count + "' value=''  >&nbsp;&nbsp;" +
     
    "&nbsp;&nbsp;&nbsp;&nbsp;Current Date:&nbsp;&nbsp;" +
    "<input type='checkbox' name='currentdateresol_" + count + "' onClick=resdate_" + count + ".value=fill_date()>" +
    "</td>" +
    "<td>" +
    "Resolution Verified as effective by:&nbsp;&nbsp;"  +
    "</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:&nbsp;(MM/DD/YYYY)&nbsp;&nbsp;" +
    "</td>" +
    "<td class='vertificationmoveinmulti'>" +
    "<input type='text' name='vertifidate_" + count + "'>&nbsp;&nbsp;" +
    "&nbsp;&nbsp;&nbsp;&nbsp;Current Date:&nbsp;&nbsp;" +
    "<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*:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"  +
    "<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:&nbsp;&nbsp;&nbsp;&nbsp;" +
    "</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 &quot;"+ count +"&quot;' 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:&nbsp;&nbsp;&nbsp;" +
    "<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)&nbsp;&nbsp;&nbsp;"  +
    "<input type='text' name='followdate_" + count + "' value='' size='8'/>&nbsp;&nbsp;&nbsp;" +
    "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 &quot;"+count +"&quot;' 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.
    Code:
    <!--- 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:&nbsp;&nbsp;&nbsp;&nbsp;</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>
    &nbsp;&nbsp;&nbsp;&nbsp;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">
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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:&nbsp;&nbsp;
    <input type="text" name="serialnum_#count#" value="#pka_serialNo#">
    &nbsp;&nbsp;&nbsp;&nbsp;Software/Hardware:&nbsp;&nbsp;
    <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:&nbsp;&nbsp;
    </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:&nbsp;&nbsp;
    </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:&nbsp;(MM/DD/YYYY)&nbsp;&nbsp;
    </td>
    <td>
    <input type="text" name="resdate_#count#" value="#DateFormat(resolution_date,'mm/dd/yyyy')#">&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;Current Date:&nbsp;&nbsp;
    <input type="checkbox" name="currentdateresol_#count#" 
    onClick="resdate_#count#.value=fill_date()">
    </td>
    <td>
    Resolution Verified as effective by:&nbsp;&nbsp;
    </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:&nbsp;(MM/DD/YYYY)&nbsp;&nbsp;
    </td>
    <td class="vertificationmoveinmulti">
    <input type="text" name="vertifidate_#count#" value="#DateFormat(verification_date,'mm/dd/yyyy')#">&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;Current Date:&nbsp;&nbsp;
    <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*:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <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:&nbsp;&nbsp;&nbsp;&nbsp;
    </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:&nbsp;&nbsp;&nbsp;<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)&nbsp;&nbsp;&nbsp;
    <input type="text" name="followdate_#count#" value="" size="8"/>&nbsp;&nbsp;&nbsp;
    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');" >
    Thank you in advance,
    Rach
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    Does the query for parts only get the parts for the current serial? Show the code for the cfquery.

    Comment

    • bonneylake
      Contributor
      • Aug 2008
      • 769

      #3
      Originally posted by acoder
      Does the query for parts only get the parts for the current serial? Show the code for the cfquery.
      Hey Acoder,

      well the parts is getting the correct information for that ticket an so is the serial. Its just repeating the results instead of the correct part going under the correct serial. But here is the cfquery

      for serial
      Code:
      <!---Shows what was previously entered into serial and description table--->
      <cfquery name="serial" datasource="CustomerSupport">
      		SELECT pka_serialNo,pkb_fk_ticketNo,model_no,product_type,software_hardware,
             resolution,resolution_date,verification_date,rma_data,type_hardware_failure,
              dept_responsibility,resolution_verified_by,fk_serialNo,fk_ticketNo,description
              FROM dbo.tbl_CS_serial
              LEFT JOIN dbo.tbl_CS_notes_descr
              ON dbo.tbl_CS_serial.pkb_fk_ticketNo=dbo.tbl_CS_notes_descr.fk_ticketNo and
              dbo.tbl_CS_serial.pka_serialNo=dbo.tbl_CS_notes_descr.fk_serialNo
              WHERE pkb_fk_ticketNo = #URL.pk_ticketID# and fk_ticketNo = #URL.pk_ticketID#
              ORDER BY pkb_fk_ticketNo
      </cfquery>
      for parts

      Code:
      <!---Shows what was previously entered into parts table--->
      <cfquery name="parts" datasource="CustomerSupport">
      		SELECT pk_partID,fk_serialNo,fk_ticketNo,hc_partNo,ltrim(rtrim(part_returned)) as part_returned,defective,submission
               FROM dbo.tbl_CS_parts
               WHERE fk_ticketNo = #URL.pk_ticketID#
      </cfquery>
      Thank you,
      Rach

      Comment

      • acoder
        Recognized Expert MVP
        • Nov 2006
        • 16032

        #4
        You don't want all the parts at once. You want parts for each serial separately. To avoid creating a separate query for each, get all the parts and then use a query of queries to get parts for each serial separately.

        Comment

        • bonneylake
          Contributor
          • Aug 2008
          • 769

          #5
          Originally posted by acoder
          You don't want all the parts at once. You want parts for each serial separately. To avoid creating a separate query for each, get all the parts and then use a query of queries to get parts for each serial separately.
          Hey Acoder,

          Well how would create a query of queries to get the parts?

          Thank you,
          Rach

          Comment

          • acoder
            Recognized Expert MVP
            • Nov 2006
            • 16032

            #6
            Use the current query and then instead of querying the database, you query the query. To do that, set the dbtype attribute of cfquery to "query". See Query of Queries

            Comment

            • bonneylake
              Contributor
              • Aug 2008
              • 769

              #7
              Originally posted by acoder
              Use the current query and then instead of querying the database, you query the query. To do that, set the dbtype attribute of cfquery to "query". See Query of Queries
              Hey Acoder,

              Is this all i need to do to it. I read over your link but i am still a bit confused.

              Code:
              <!---Shows what was previously entered into parts table--->
              <cfquery name="parts" datasource="CustomerSupport" dbtype="query">
              		SELECT pk_partID,fk_serialNo,fk_ticketNo,hc_partNo,ltrim(rtrim(part_returned)) as part_returned,defective,submission
                       FROM dbo.tbl_CS_parts
                       WHERE fk_ticketNo = #URL.pk_ticketID#
              </cfquery>
              Thank you,
              Rach

              Comment

              • acoder
                Recognized Expert MVP
                • Nov 2006
                • 16032

                #8
                Well, to be honest, you don't necessarily need a query of queries. However, if you're looking at performance benefits and efficiency, it makes sense. We can carry on down this route, but if you feel that you just want to get it working without looking at some new type of coding, then we can look at the inefficient solution.

                Your query of queries should query the parts query, not the database and you can just select * because you already have only the fields that you need.

                Comment

                • bonneylake
                  Contributor
                  • Aug 2008
                  • 769

                  #9
                  Originally posted by acoder
                  Well, to be honest, you don't necessarily need a query of queries. However, if you're looking at performance benefits and efficiency, it makes sense. We can carry on down this route, but if you feel that you just want to get it working without looking at some new type of coding, then we can look at the inefficient solution.

                  Your query of queries should query the parts query, not the database and you can just select * because you already have only the fields that you need.
                  Hey Acoder,

                  Well the faster the better so i guess we can stick with what we are doing. But here is what i have now. I looked at the example better an think i understand a bit more. The one part i am confused on is what would i put for cfqueryparam. Would i put what i had before which is the pk_ticketID?

                  Code:
                  <cfquery name="parts" dbtype="query" >
                  		SELECT *
                           FROM dbo.tbl_CS_parts
                           WHERE fk_ticketNo <cfqueryparam value="#LastNameSearch#" 
                  cfsqltype="cf_sql_char" maxLength="20">
                  </cfquery>
                  Thank you,
                  Rach

                  Comment

                  • acoder
                    Recognized Expert MVP
                    • Nov 2006
                    • 16032

                    #10
                    Replace lastnamesearch with serial number (the field name from the serial query).

                    Comment

                    • bonneylake
                      Contributor
                      • Aug 2008
                      • 769

                      #11
                      Originally posted by acoder
                      Replace lastnamesearch with serial number (the field name from the serial query).
                      Hey Acoder,

                      Do i replace the lastnamesearch with the serial number field from the serial table or the serial number field from the parts table? both tables have a serial field and both contain the same serial number. Right now i am using the serial field from parts table.

                      Code:
                      <cfquery name="parts" dbtype="query" >
                      SELECT *
                      FROM dbo.tbl_CS_parts
                      WHERE fk_ticketNo <cfqueryparam value="#fk_serialNo#" 
                      cfsqltype="cf_sql_char" maxLength="20">
                      </cfquery>
                      Thank you,
                      Rach

                      Comment

                      • acoder
                        Recognized Expert MVP
                        • Nov 2006
                        • 16032

                        #12
                        It should be the field from the serial query. Also change the FROM clause to the name of the query that selects all parts. If it's parts, don't use the same name to name this particular query.

                        Comment

                        • bonneylake
                          Contributor
                          • Aug 2008
                          • 769

                          #13
                          Originally posted by acoder
                          It should be the field from the serial query. Also change the FROM clause to the name of the query that selects all parts. If it's parts, don't use the same name to name this particular query.
                          Hey Acoder,

                          Here is what i did, not sure if i did it right.

                          Code:
                          <cfquery name="getparts" dbtype="query" >
                          SELECT *
                          FROM dbo.tbl_CS_parts
                          WHERE fk_ticketNo <cfqueryparam value="#pka_serialNo#" 
                          cfsqltype="cf_sql_char" maxLength="20">
                          </cfquery>
                          Thank you,
                          Rach

                          Comment

                          • acoder
                            Recognized Expert MVP
                            • Nov 2006
                            • 16032

                            #14
                            It should query "parts" (name of the first query), not dbo... and shouldn't the field being checked in the WHERE clause be fk_serialno? You also forgot an =.

                            Comment

                            • bonneylake
                              Contributor
                              • Aug 2008
                              • 769

                              #15
                              Originally posted by acoder
                              It should query "parts" (name of the first query), not dbo... and shouldn't the field being checked in the WHERE clause be fk_serialno? You also forgot an =.
                              Hey Acoder,

                              Yes you are right it should be fk_serialNo. An i been thinking the whole we only needed the one parts my bad. Ok so the whole thing should be the following

                              Code:
                              <!---Shows what was previously entered into parts table--->
                              <cfquery name="parts" datasource="CustomerSupport">
                              		SELECT pk_partID,fk_serialNo,fk_ticketNo,hc_partNo,ltrim(rtrim(part_returned)) as part_returned,defective,submission
                                       FROM dbo.tbl_CS_parts
                                       WHERE fk_ticketNo = #URL.pk_ticketID#
                              </cfquery>
                              
                              <cfquery name="getparts" dbtype="query" >
                              SELECT *
                              FROM dbo.tbl_CS_parts
                              WHERE fk_serialNo=<cfqueryparam value="#pka_serialNo#" 
                              cfsqltype="cf_sql_char" maxLength="20">
                              </cfquery>
                              Thank you,
                              Rach

                              Comment

                              Working...