2017-03-15 2 views
0

ajaxを使用してクエリを呼び出していますが、テーブルを返そうとしています。テキストをテキストボックスに返すハードコードバージョンを取得することができましたが、私はそれをテーブルとして戻そうとしています。これに関する助けがあれば大いに感謝します。テーブルの一部をajaxに渡す

AJAXコール

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

プロキシ/ TomorrowsDate.cfm

<cfset result = {} /> 
<cftry> 
    <cfset session.dealerwork.tomorrowsdate = form.date > 
    <cfset result.date = form.date/> 

    <cfquery name="tomorrowTextArea"> 
     SELECT dbo.Dealer_Track_Work.id, dbo.Dealer_Track_Work.dealerID, dbo.Dealer_Track_Work.Date_Received, dbo.Dealer_Track_Work.op_id, dbo.Dealer_Track_Work.Date_Due, 
     dbo.Dealer_Track_Work.Date_Complete, dbo.Dealer_Track_Work.Completed_Late, dbo.Dealer_Track_Work.Closed_by, dbo.Dealer_Track_Work.Rmks, dbo.Dealer_Track_Work.Processing_Location, 
     dbo.Dealer_Track_Work.Item_Count, dbo.Dealer_Track_Dealers.id, dbo.Dealer_Track_Dealers.Name 
     FROM dbo.Dealer_Track_Work, dbo.Dealer_Track_Dealers 
     WHERE dbo.Dealer_Track_Work.dealerID = dbo.Dealer_Track_Dealers.id 
     AND Date_Complete IS NULL 
     AND Date_Due = <cfqueryparam value="#session.dealerwork.tomorrowsdate#" /> 
     AND Date_Complete IS NULL 
    </cfquery> 

    <cfset result.text = ''> 
    <cfoutput query="tomorrowTextArea"> 
     <cfset result.text = result.text & "<tr> 
           <td>#id#</td> 
           <td>#tomorrowTextArea.name#</td> 
           <td>#Item_Count# ITEMS</td> 
           </tr>" /> 
    </cfoutput> 



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

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

これは、私が戻ってページの情報を表示しようとする方法である:<span id="DueTmrw" name="DueTmrw"></span>(これは何も表示されません)私が使用している場合<textarea type="text" name="DueTmrw" id="DueTmrw" class="form-control" rows="7"></textarea>正しい結果が表示されますが、実際の表と同じではありません。これらの行をajaxを通るテーブルとしてどのように表示するのですか?私が試してみました

すべてのもの:

<tbody> 


    <span id="DueTmrw" name="DueTmrw"></span> 
          <textarea type="text" name="DueTmrw" id="DueTmrw" class="form-control" rows="7"></textarea> 
           <!---<cfoutput query="tomorrowTextArea"> 
           <tr> 
           <td>#id#</td> 
           <td>#tomorrowTextArea.name#</td> 
           <td>#Item_Count# ITEMS</td> 
           </tr> 
           </cfoutput>---> 
          </tbody> 

はまた、このような何かをやってみました:$("DueTmrw > tbody").append('<tr><td>my data</td><td>more data</td></tr>');

+1

タグが表示されません。また、CFでhtml構造体を構築するときには、 'cfsavecontent'を見たいかもしれません。 – snackboy

+0

私はテーブルのその部分を、結果のループで塗りつぶしていましたが、私は列ヘッダーなどを変更していませんでした。 –

+0

さて、私は '

'を見ませんでした。だから私はテーブルタグがあると仮定している。 – snackboy

答えて

3

jQueryの.val()特にたとえば<input>ために、フォームコンポーネントの入力タイプ用/設定値を取得するためのものです要素は<textarea>です。

spanタグ更新しようとしたときにこれがあなたの成功コールバックが.val()<textarea>値を更新するために、正常に動作する理由ですが、休憩:フォームの入力タイプを更新する

使用.val()を:

// this will work to change the value of an input field 
// (like a textarea) but will not update a <span> element. 
$('#DueTmrw').val(data.TEXT); 

非フォーム入力タイプ(spandivaなど)のテキストを更新するには.text()を使用します。

使用.text()非フォームフィールドの種類を更新する:

// this will work to change the text of a non-form input field 
// (like a span) but will not update an <input> or form input element. 
$('#DueTmrw').text(data.TEXT); 

あなたが.html()を使用し、その後、サーバーから取得HTMLのように、要素内にHTMLを設定する場合:

使用.html()あなたが更新(置き換え)したい場合は、ページ上の要素のinnerHTMLプロパティ:

var htmlFromServer = '<tr><td>example</td></tr>'; 
var myElement = $('.someTag'); 
myElement.html(htmlFromServer); 

これは役に立ちます。

+0

私はまだ、この表示方法を見つけ出すカント: '

​​#IDは# ​​#tomorrowTextArea.name# ​​#ITEM_COUNT#ITEMS iの情報ことを示しんか' –

+0

を? –

+0

@DavidBrierton、私が私の答えに追加した '.html()'の例をチェックしてください、あなたが探しているものだと思います – radiovisual

関連する問題