'Spaces disappear
I have a simple html that goes to a asp script to save the data in a text file but all the spaces disappear. I have tried a lot.
I have tried to do a URL coding but it does not fix it. Server.URLEncode is still in the script.
I really need to under how to get the blanks in the output file. Please help
any help.
This is the script from the HTML
<script type="text/javascript">
// Current date - http://stackoverflow.com/a/4929629/412329
// this creates the date and time for the save file
//end create time and date stamp
function saveFormAsTextFile()
// Based on https://thiscouldbebetter.wordpress.com/2012/12/18/loading-editing-and-saving-a-text-file-in-html5-using-javascrip/
{
var today = new Date();
var s = today.getSeconds();
var n = today.getMilliseconds();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
today = yyyy+'-'+mm+'-'+dd+'-'+s+'-'+n;
//This section checks to see if the quantity is zero and sets it to 1
var copies;
copies = 1;
//copies = document.getElementById('Quantity').value;
if (copies < document.getElementById('Quantity').value)
{
var copies = document.getElementById('Quantity').value;
}
//end copies section
var Line1 = document.getElementById('Line1').value;
var textToSave =
'datestring='+today+
'&SKU=' + document.getElementById('SKU').value + '\n' + // =SKU
'&Form=' + document.getElementById('Select_Form').value + // =Select Form
'&Printer=' + document.getElementById('Select_Printer').value + // =Select Printer
'&Retail=' + document.getElementById('Retail').value + // =Select Retail
'&Sale_Price=' + document.getElementById('Sale_Price').value + // =Select Sale_Price
'&Pieces=' + document.getElementById('Pieces').value + // =Select Pieces
'&Line1=' + Line1 + // =Select Line1
'&Line2=' + document.getElementById('Line2').value + // =Select Line2
'&Line3=' + document.getElementById('Line3').value + // =Select Line3
'&Line4=' + document.getElementById('Line4').value + // =Select Line4
'&Line5=' + document.getElementById('Line5').value + // =Select Line5
'&Line6=' + document.getElementById('Line6').value + // =Select Line6
'&Copies=' + copies
var xhr=new XMLHttpRequest();
xhr.open("POST", "Gallery_Tags_Print-OTF.asp", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(textToSave);
alert("Sent to printer!");
}
function destroyClickedElement(event)
{
document.body.removeChild(event.target);
}
This is the full asp
<%
dim fs, tfile
datestr=Request.Form("datestring")
sku=Request.Form("SKU")
form=Request.Form("Form")
printer=Request.Form("Printer")
retail=Request.Form("Retail")
saleprice=Request.Form("Sale_Price")
pieces=Request.Form("Pieces")
line1=Request.Form("Line1")
test2=Server.URLEncode(Request.Form("Line1"))
line2=Request.Form("Line2")
line3=Request.Form("Line3")
line4=Request.Form("Line4")
line5=Request.Form("Line5")
line6=Request.Form("Line6")
copies=Request.Form("Copies")
filestr="C:\Program Files\FabSoft-SysConnect\Spooler\" & datestr & ".txt"
set fs=Server.CreateObject("Scripting.FileSystemObject")
set tfile=fs.CreateTextFile(filestr, true)
tfile.WriteLine( "")
tfile.WriteLine( "")
tfile.WriteLine( "")
tfile.WriteLine( "")
tfile.WriteLine( "")
tfile.WriteLine("did it work: " & test2)
tfile.WriteLine( "")
tfile.WriteLine( "")
tfile.WriteLine( chr(9) & chr(9) & chr(9) & chr(9) & chr(9) & chr(9) & chr(9) &" OTF-TEMPLATE")
tfile.WriteLine( chr(9) & "SKU: " & sku)
tfile.WriteLine( chr(9) & "Form: " & form)
tfile.WriteLine( chr(9) & "Printer: " & printer)
tfile.WriteLine( chr(9) & "Retail Price: " & retail)
tfile.WriteLine( chr(9) & "Sale Price: " & saleprice)
tfile.WriteLine( chr(9) & "Pieces: " & pieces)
tfile.WriteLine( chr(9) & "Line 1: " & line1)
tfile.WriteLine( chr(9) & "Line 2: " & line2)
tfile.WriteLine( chr(9) & "Line 3: " & line3)
tfile.WriteLine( chr(9) & "Line 4: " & line4)
tfile.WriteLine( chr(9) & "Line 5: " & line5)
tfile.WriteLine( chr(9) & "Line 6: " & line6)
tfile.WriteLine( chr(9) & "Copies: " & copies)
tfile.close
%>
Solution 1:[1]
Try using encodeURIComponent() on the user inputted fields like the following. Also not sure why you have the "\n" getting added.
var textToSave =
'datestring='+encodeURIComponent(today) +
'&SKU=' + encodeURIComponent(document.getElementById('SKU').value) + // =SKU
'&Form=' + encodeURIComponent(document.getElementById('Select_Form').value) + // =Select Form
'&Printer=' + encodeURIComponent(document.getElementById('Select_Printer').value) + // =Select Printer
'&Retail=' + encodeURIComponent(document.getElementById('Retail').value) + // =Select Retail
'&Sale_Price=' + encodeURIComponent(document.getElementById('Sale_Price').value) + // =Select Sale_Price
'&Pieces=' + encodeURIComponent(document.getElementById('Pieces').value) + // =Select Pieces
'&Line1=' + Line1 + // =Select Line1
'&Line2=' + encodeURIComponent(document.getElementById('Line2').value) + // =Select Line2
'&Line3=' + encodeURIComponent(document.getElementById('Line3').value) + // =Select Line3
'&Line4=' + encodeURIComponent(document.getElementById('Line4').value) + // =Select Line4
'&Line5=' + encodeURIComponent(document.getElementById('Line5').value) + // =Select Line5
'&Line6=' + encodeURIComponent(document.getElementById('Line6').value) + // =Select Line6
'&Copies=' + encodeURIComponent(copies)
Solution 2:[2]
That was the solution encodeURIComponent
'&SKU=' + encodeURIComponent(document.getElementById('SKU').value) + // =SKU
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Mifo |
Solution 2 | jbalter |