2012-05-02 12 views
0

ユーザーがファイルを再アップロードするボタンをクリックしたときに選択された値を取得するこのコードがあります。私はwindow.nameを使用しようとしましたが、データはまだ失われています。私は間違った角度でこれに行くかもしれませんが、私があなたを助けてくれることを願っています。ファイルが再びアップロードされるとmyValが空にならないようにする方法はありますか?アップロードと選択値は別のフォームに属しているので、選択値がある場所にフォームを送信する必要があるため、配列を使用するだけでは使用できません。 ファイルを再アップロードした後に選択した値を保持する

はあなた

function testcsv() 
    { 
     var myVal = $('#csv_map').find('.sqlopt').map(function() { 
             return $(this).val(); 

             }).get().join(','); 
     var select_val = myVal.split(','); 

     alert(select_val); 
     window.name = myVal; 


     $('#csvtest').click(
     function() 
     { 
     $('#csv_form').submit(); 
     alert(window.name); 
     } 
     ); 

     // $('#sqlbox_1').val(test[0]); 


    } 
+0

不必要なグローバル変数( 'window.name')を作成しないでください... – ThiefMaster

+0

私はごめんなさい。私は必死だった。私はどこかでwindow.nameを読むのが良い方法です。 @ ThiefMasterは何をお勧めしますか? – magicianiam

答えて

0

がアップロードフォーム内の隠しフィールドを入れて、フォームが送信される直前にそれを更新ありがとう(すなわち、ユーザーがファイルをアップロードする場合)。プロトタイプ:

<!-- Upload form --> 
<form id="csv_form"> 
<!-- form definition omitted (fields, labels, etc) ... --> 

<!-- and this is our hidden field --> 
<input type="hidden" name="select_val" /> 
</form> 

<!-- Form with SELECTs --> 
<form id="csv_map"> 
<select class="sqlopt"> ... </select> 
<select class="sqlopt"> ... </select> 
<!-- rest of the form definition omitted ... --> 
</form> 

<!-- Put this JS somewhere --> 
<script> 
$(document).ready(function() { 
    $('#csv_form').submit(function() { 
    var myVal = $('#csv_map').find('.sqlopt').map(function() { 
     return $(this).val(); 
    }).get().join(','); 

    // Update value of hidden field 
    $(this).find('input[name="select_val"]').val(myVal); // will contain comma-separated string of values 
    }); 
}); 
</script> 
関連する問題