how can i populate javascript array value from my text box,

suppose i have a array like this

var a=new array("1.00","2.00");

instead of 1 2 i want to put text box value in there,which user will enter.

thx in advance,really appreciate it.

It depends on exactly what you want to do. There are many formulations here are a couple.

1. To put a textbox value into a specified index in the array:

var a = [];//new array
function putValueIntoArray(textboxID, index) {
  var textbox = document.getElementById(textboxID);
  if(textbox) {
    a[index] = textbox.value;
  }
}

2. To add a textbox value to the end of the array:

var a = [];//new array
function putValueIntoArray(textboxID) {
  var textbox = document.getElementById(textboxID);
  if(textbox) {
    a.push(textbox.value);
  }
}

In both cases you need to call putValueIntoArray from somewhere else in your code, with the appropriate arguments.

Airshow

Member Avatar for stbuchok
//get textbox elements
var txtTextBox1 = document.getElementById('txtTexBox1');
var txtTextBox2 = document.getElementById('txtTexBox2');

//[] is short hand
var a = [txtTextBox1.value, txtTextBox2.value];
commented: Super clean, minimal and directly to the point. +0

thanks a lot for your time and i am
sorry maybe i should have cleared this a bit more,i have alreay tried those technique but somehow its not working.

here is the code

<HEAD>





<script>

<!-- Begin

/*

stationname:	array of station names in sequence with 1st station

timediff: 		array of times from 1st station

starting:		array of departure times from 1st station

*/
var a=document.getElementById('b1');

var nameStation = new Array("Startville", "Twoshire  ", "Threeham  ", "Fourhampton", 

"Terminus  ");

var timeDiff = new Array("0:00", "1:03", "1:18", "1:43", "0:153"); // time to last 

station is 2 hours and 33 minutes = 153 minutes

var timeStart = new Array('1:00', "1:30", "1:05");

timeStart[0]= 'a.val';

var lines = new Array

nl = "\n";

t1 = "\t";

t2 = "\t\t";

i = 0;



function print2doc(){

	// head the schedule

	lines[0] = nameStation[i] +t1+ nameStation[++i] +t1+ nameStation[++i] +t1+ 

nameStation[++i] +t1+ nameStation[++i]+nl

	//v = sumTime(timeStart[1],timeDiff[4]); alert(v); return	// this for 

testing

	// build the lines for printing

	for (i=0; i<3; i++) { 

		lines[i+1] = timeStart[i] +t2+ sumTime(timeStart[i],timeDiff[1]) +t2+ 

sumTime(timeStart[i],timeDiff[2]) +t2+ sumTime(timeStart[i],timeDiff[3]) +t2+ sumTime

(timeStart[i],timeDiff[4]) + nl;

	}

	text = '<b><i>'+lines[0]+'</i></b>' + lines[1] +lines[2] + lines[3]

	//alert(text)

	// make a window for train schedule

	nw = window.open("","popWin","width=600,height=200")

	// write to window

	nw.document.open();

	nw.document.write("<html>\n<body bgcolor='lightsteelblue'>\n<h2 

align='center'>Train Schedule</h2>\n<pre>\n");

	nw.document.write(text);

	nw.document.write("</pre>\n</body>\n</html>");

	nw.document.close();

}



function sumTime(startT,deltaT){	// add times

	time1 = startT.split(":");

	time2 = deltaT.split(":");

	hours = time1[0]/1 + time2[0]/1;		// add hours

	minutes = time1[1]/1 + time2[1]/1;		// add minutes

	if (minutes >=180) { hours++; minutes = minutes - 60; }		// bump hours if 

needed

	if (minutes >=120) { hours++; minutes = minutes - 60; }		// bump hours if 

needed

	if (minutes >= 60) { hours++; minutes = minutes % 60; }		// bump again if 

needed

	if (minutes < 10) minutes = "0" + minutes;					

// add padding if required

	time3 = hours +":"+ minutes

	//alert(time3)

	return time3	// return the total as a string

}



// End -->

</script>	

</HEAD>






<BODY onUnload="if (!nw.closed) nw.close()">





<form>
<input type="text" id="b1">

<input type=button value="Generate the Schedule" onClick="print2doc()" 

style="background-color: gold;">

</form>



</div>







<!-- Script Size:  3.46 KB -->
Member Avatar for stbuchok
timeStart[0]= 'a.val';

What are you trying to do at line 32?
Are you sure you don't mean this?

timeStart[0]= a.value;

This is a Timetable Generator.

Each route in a Timetable is essentially a 2-dimensional entity; "stations" against "start time". Therefore, consider, basing the presentation on just two arrays, with all timeDiffs and times as integers, not strings:

var stations = [//array
  {name:"Startville",  timeDiff:0},//object with two properties
  {name:"Twoshire",    timeDiff:63},
  {name:"Threeham",    timeDiff:78},
  {name:"Fourhampton", timeDiff:103},
  {name:"Terminus",    timeDiff:113}
];
var timeStart = [60, 65, 90];//array. All start times in minutes from midnight

This gives you the basis for the necessary arithmetic, in minutes. Convert results to hh:mm for presentation.

Now generate the table in two nested loops; outer loop for rows and inner loop for columns.

Try not to use document.write(). Instead use DOM methods to put generated output into the document, eg, document.createElement(), element.appendChild() and element.innerHTML=.

Airshow

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.