2015-10-22 7 views
6

Ho una tabella con Date_Due e Date_Complete. Il mio obiettivo è disporre di due aree di testo una per oggi e una per domani (domani non include festività o fine settimana, quindi se il venerdì è il giorno lavorativo successivo normalmente lunedì a meno che non ci sia una festività il lunedì). Sto usando CF per interrogare il database sql. Nelle mie aree di testo sto cercando di capire come mostrare il mio #id# e il mio #Item_Count# come questo 123 ... 6 articoli. Ma la parte difficile su cui sto lottando è 1.) Avendoli visualizzati solo nella data corretta e 2.) Se c'è una data di completamento non mostrare neanche.jQuery/database CF area di testo Riempire in base alle date nella banca dati

La prima area di testo sarebbe basata su Date_Due, quindi qualsiasi cosa "oggi" verrà visualizzata in questa area di testo, purché non ci sia già un Date_Complete nel database. Deve solo mostrare se non è ancora completato.

Quindi la seconda area di testo è per domani che è un po 'più difficile perché è più che appena più uno che prende in considerazione per le vacanze e nei fine settimana. Ho già un'etichetta che funziona correttamente, quindi la data della textarea deve corrispondere all'ID di span della data di consegna (data). Ecco un esempio di quello http://jsfiddle.net/byyeh83t/7/

Qualsiasi aiuto con questo sarebbe molto apprezzato.

Inoltre, creo un input nascosto con la data corretta da inserire.

<input id="TomorrowsDate" type="text"/> 

function setDeliveryDate(date) { 
    $('#delivery-date').text($.datepicker.formatDate('mm/dd/yy', date)); 
    $('#TomorrowsDate').val($.datepicker.formatDate('mm/dd/yy', date)); 
} 


setDeliveryDate(AddBusinessDays(dateMin, 1)); 

aree di testo

<div class="col-xs-6"> 
<div class="row"> 
    <div id="DToday" class="col-xs-12"> 
     <label class="centered" for="DueToday">DUE TODAY @ 5:00</label> 
     <textarea type="text" name="DueToday" id="DueToday" class="form-control" rows="7"><cfoutput query="processTable">#id# ... #Item_Count# ITEMS &##13;&##10;</cfoutput></textarea> 
    </div> 
    <div id="DTmrw" class="col-xs-12"> 
     <label class="centered" for="DueTmrw">DUE <span id="delivery-date"></span> @ 5:00</label> 
     <textarea type="text" name="DueTmrw" id="DueTmrw" class="form-control" rows="7"><cfoutput query="processTable">#id# ... #Item_Count# ITEMS &##13;&##10;</cfoutput></textarea> 
    </div> 
</div> 

enter image description here

Tabella

enter image description here

mio CFC come ottenere la tabella utilizzando CF

<cffunction name="displayTable" access="public" returntype="query"> 
    <cfset var processTable = ''> 
    <cfquery name="processTable"> 
     SELECT * 
     FROM dbo.Dealer_Track_Work, dbo.Dealer_Track_Dealers 
     WHERE dbo.Dealer_Track_Work.dealerID = dbo.Dealer_Track_Dealers.id  
    </cfquery> 
    <cfreturn processTable> 
</cffunction> 

Aggiornamento Aggiornamento Aggiornamento Sto cercando di capire come avere un campo nascosto compilare un cfparam nella mia interrogazione. Il mio campo nascosto ha automaticamente la data corretta a causa di JQuery, ma ho bisogno di sapere come passare il form.value al parametro poiché nulla viene inviato o inserito. È solo un campo nascosto con la data corretta già che ho bisogno di un po 'come passare automaticamente alla query all'interno del param.

http://jsfiddle.net/byyeh83t/8/

Il violino mostra l'ingresso ricevente automaticamente la data. Ma dal momento che non viene inviato nulla e non vi è alcun pulsante premuto o nulla (dal momento che si tratta di un'applicazione a singola pagina) come faccio a prendere il form.value e inserirlo nel param nella mia query?

<input name="TomorrowsDate" id="TomorrowsDate" type="hidden"/> 

    <cfquery name="tomorrowTextArea"> 
      SELECT * 
      FROM dbo.Dealer_Track_Work 
      WHERE Date_Due = <cfqueryparam value="form.TomorrowsDate" /> 
      AND Date_Complete IS NULL  
     </cfquery> 

risposta

1

Sulla base di questa chat: http://chat.stackoverflow.com/rooms/93528/discussion-between-vicki-and-beloitdavisja

JS

var Tmrwdate = $('#TomorrowsDate').val(); 

$.ajax({ 
    url: "proxy/TomorrowsDate.cfm", 
    type: "post", 
    dataType: "json", 
    data: {date: Tmrwdate }, 
    success: function (data) { 
     console.log(data); 
     $('#DueTmrw').val(data.TEXT); 
    }, 
    error: function (xhr, textStatus, errorThrown) { 
     console.log(errorThrown); 
    } 
}); 

CF

<!--- Create a result ---> 
<cfset result = {} /> 
<cftry> 
    <cfset session.dealerwork.tomorrowsdate = form.date> 
    <cfset result.TomorrowsDate = form.date/> 

    <cfquery name="tomorrowTextArea"> 
     SELECT * 
     FROM dbo.Dealer_Track_Work 
     WHERE Date_Due = <cfqueryparam value="#session.dealerwork.tomorrowsdate#" /> 
     AND Date_Complete IS NULL 
    </cfquery> 

    <cfset result.text = ''> 
    <cfloop query="tomorrowTextArea"> 
     <cfset result.text = result.text & "#id# ... #Item_Count# ITEMS #chr(13)##chr(10)#" /> 
    </cfloop> 



    <cfcatch type="any"> 
     <cfset result.error = CFCATCH.message > 
     <cfset result.detail = CFCATCH.detail > 
    </cfcatch> 
</cftry> 

<cfoutput>#SerializeJSON(result)#</cfoutput> 

Attenzione: utilizzare l'attributo cfsqltype nel vostro cfqueryparam tag f o migliore sicurezza.

1

È possibile filtrare facilmente le voci necessarie nel destinatario di SQL.

 <cfquery name="processTable"> 
      SELECT * 
      FROM dbo.Dealer_Track_Work, dbo.Dealer_Track_Dealers 
      WHERE dbo.Dealer_Track_Work.dealerID = dbo.Dealer_Track_Dealers.id 
      AND dbo.Date_Due = CONVERT(date, getdate()) AND dbo.Date_Complete IS NULL 
     </cfquery> 

Per la seconda area di testo è possibile regolare di nuovo l'SQL ..qualcosa come AND dbo.Due_Date > CONVERT(date, getdate())

Problemi correlati