Hey Guys
Using some peoples codes i manage to create a form that out add some product lines as user requested on the page, at the same time to add the values. Im just putting the related code.
The problem is that when created the select and loading it with the options and trying to select the index in the form it stops working.
If anyone has some sugestions please let me know
Thanks
Here is the used code.
Form.php
[code=php]<?php
echo ”
<form method=’post’ action=’?do=add’ onsubmit=’return validate(this);’ name=’megacompra’> <table width=’592′ border=’0′ cellspacing=’2′ cellpadding=’3′ align=’left’>
<tr>
<td class=’form_text’ width=’118′>
<div align=’center’>
Producto</div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
Cantidad</div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
Precio</div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
IVA</div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
Total</div></td>
</tr>
<tr>
<td class=’form_text’ width=’118′>
<div align=’center’>
<select name=’producto_’ size=’1′ onChange=’javascript:addInput(0)’>
<OPTION value=’0′>–Opcion–</OPTION>
“;
DB_LlenaCombo (‘SELECT idProducto, nombre FROM Producto’,$Producto_1);
echo ”
</select></div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
<input type=’text’ name=’cantidad_’ size=’6′ value=’$Cantidad’ onFocus=’javascript:startCalc()’ onBlur=’javascript:stopCalc()’ ></div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
<input type=’text’ name=’precio_’ size=’6′ value=’$Precio’ onFocus=’javascript:startCalc()’ onBlur=’javascript:stopCalc()’></div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
<input type=’text’ name=’iva_’ size=’6′ value=’$Iva’ onFocus=’javascript:startCalc()’ onBlur=’javascript:stopCalc()’>%</div></td>
<td class=’form_text’ width=’118′>
<div align=’center’>
<input type=’text’ name=’total_’ size=’8′ value=’$Total’ ></div></td>
</tr>
</table>
<div id=’parah’></div>
<table width=’592′ border=’0′ cellspacing=’2′ cellpadding=’3′ align=’left’>
<tr>
<td colspan=’3′>
<table width=’100%’ border=’0′ cellspacing=’2′ cellpadding=’0′></td>
<tr>
<td class=’form_button’>
<div align=’center’>
</div>
</td>
<td class=’form_button’>
<div align=’center’>
<input type=’submit’ value=’Ingresar’></div>
</td>
<td>
<input type=’text’ name=’final’ size=’6′ value=’$final[1]’>
<input type=’text’ name=’productoXX’ size=’6′ value=’$final[1]’>
</td>
</tr>
</table>
</form>
“;
?>[/code]
Ajax.js
[code=php]function sack(file) {
this.xmlhttp = null; this.resetData = function() {
this.method = “POST”;
this.queryStringSeparator = “?”;
this.argumentSeparator = “&”;
this.URLString = “”;
this.encodeURIString = true;
this.execute = false;
this.element = null;
this.elementObj = null;
this.requestFile = file;
this.vars = new Object();
this.responseStatus = new Array(2);
};
this.resetFunctions = function() {
this.onLoading = function() { };
this.onLoaded = function() { };
this.onInteractive = function() { };
this.onCompletion = function() { };
this.onError = function() { };
this.onFail = function() { };
};
this.reset = function() {
this.resetFunctions();
this.resetData();
};
this.createAJAX = function() {
try {
this.xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”);
} catch (e1) {
try {
this.xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (e2) {
this.xmlhttp = null;
}
}
if (! this.xmlhttp) {
if (typeof XMLHttpRequest != “undefined”) {
this.xmlhttp = new XMLHttpRequest();
} else {
this.failed = true;
}
}
};
this.setVar = function(name, value){
this.vars[name] = Array(value, false);
};
this.encVar = function(name, value, returnvars) {
if (true == returnvars) {
return Array(encodeURIComponent(name), encodeURIComponent(value));
} else {
this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
}
}
this.processURLString = function(string, encode) {
encoded = encodeURIComponent(this.argumentSeparator);
regexp = new RegExp(this.argumentSeparator + “|” + encoded);
varArray = string.split(regexp);
for (i = 0; i < varArray.length; i++){
urlVars = varArray[i].split(“=”);
if (true == encode){
this.encVar(urlVars[0], urlVars[1]);
} else {
this.setVar(urlVars[0], urlVars[1]);
}
}
}
this.createURLString = function(urlstring) {
if (this.encodeURIString && this.URLString.length) {
this.processURLString(this.URLString, true);
}
if (urlstring) {
if (this.URLString.length) {
this.URLString += this.argumentSeparator + urlstring;
} else {
this.URLString = urlstring;
}
}
// prevents caching of URLString
this.setVar(“rndval”, new Date().getTime());
urlstringtemp = new Array();
for (key in this.vars) {
if (false == this.vars[key][1] && true == this.encodeURIString) {
encoded = this.encVar(key, this.vars[key][0], true);
delete this.vars[key];
this.vars[encoded[0]] = Array(encoded[1], true);
key = encoded[0];
}
urlstringtemp[urlstringtemp.length] = key + “=” + this.vars[key][0];
}
if (urlstring){
this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
} else {
this.URLString += urlstringtemp.join(this.argumentSeparator);
}
}
this.runResponse = function() {
eval(this.response);
}
this.runAJAX = function(urlstring) {
if (this.failed) {
this.onFail();
} else {
this.createURLString(urlstring);
if (this.element) {
this.elementObj = document.getElementById(this.element);
}
if (this.xmlhttp) {
var self = this;
if (this.method == “GET”) {
totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
this.xmlhttp.open(this.method, totalurlstring, true);
} else {
this.xmlhttp.open(this.method, this.requestFile, true);
try {
this.xmlhttp.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”)
} catch (e) { }
}
this.xmlhttp.onreadystatechange = function() {
switch (self.xmlhttp.readyState) {
case 1:
self.onLoading();
break;
case 2:
self.onLoaded();
break;
case 3:
self.onInteractive();
break;
case 4:
self.response = self.xmlhttp.responseText;
self.responseXML = self.xmlhttp.responseXML;
self.responseStatus[0] = self.xmlhttp.status;
self.responseStatus[1] = self.xmlhttp.statusText;
if (self.execute) {
self.runResponse();
}
if (self.elementObj) {
elemNodeName = self.elementObj.nodeName;
elemNodeName.toLowerCase();
if (elemNodeName == “input”
|| elemNodeName == “select”
|| elemNodeName == “option”
|| elemNodeName == “textarea”) {
self.elementObj.value = self.response;
} else {
self.elementObj.innerHTML = self.response;
}
}
if (self.responseStatus[0] == “200”) {
self.onCompletion();
} else {
self.onError();
}
self.URLString = “”;
break;
}
};
this.xmlhttp.send(this.URLString);
}
}
};
this.reset();
this.createAJAX();
}
[/code]