Hola, tengo el siguiente problema, hago una actualización de stock de articulos, hasta ahí funciona bien. Pero si hay un erro, me debe tirar una alert y al input le debe recargar el dato que aun esta en la bd, lo hice asi.
En FF, Chrome, opera y Safari funciona ok!!
Funcion javascript en el archivo HTML
Código HTML:
Ver original<script language="JavaScript"> <!--
function ActualizaStock(form)
{
var cantidad = form.canti.value;
var id = form.id.value;
var a = mysql_update_query("update stock set cantidad = " + cantidad + " WHERE id_producto = " + id);
if(a)
{
alert("Actualizacion Realizada Satisfactoriamente");
}
else
{
alert("No se Pudo Actualizar el Precio");
}
var b = mysql_consulta_valor("SELECT cantidad FROM stock WHERE id_producto = " + id, "cantidad");
alert(b);
document.getElementById('form_'+id).canti.value = b;
}
//-->
El form lo armo asi, de forma dinamica!!!
Código PHP:
Ver originalwhile($fila = mysql_fetch_array($result))
{
?>
<tr>
<td class="ctd"><?=$fila['id_productos'];?></td>
<td class="ctd"align="center">
<?
{
?>
<a href="http://www.forosdelweb.com/f13/<?=$fila['imagen'];?>" rel="lightbox"><img src="http://www.forosdelweb.com/f13/<?=$fila['imagen'];?>"width="90"></a>
<?
}
?>
</td>
<td class="ctd"><a><?=$fila['titulo'];?></a></td><td class="ctd"align="center">
<form method="POST" id="form_<?=$fila['id_productos'];?>">
<input type="text" name="canti" size="10"value="<?=trae_stock($fila['id_productos']);?>"><input type="hidden"name="id" value="<?=$fila['id_productos'];?>">
<input type="button"onclick="ActualizaStock(this.form); return false"value="Cargar">
</form>
</td>
</tr>
<?
}
?>
Archivo JS de Ajax.
Código Javascript
:
Ver originalvar urlMysqlwsphp="mysql_js.php";
function mysql_update_query(query) {
var req = new ajaxRequest();
var url = urlMysqlwsphp + "?q=" + query + "&op=1";
req.open("GET", url, false)
req.send(null);
return req.responseText;
}
function mysql_select_query(query) {
var req = new ajaxRequest();
var url = urlMysqlwsphp + "?q=" + query + "&op=2";
req.open("GET", url, false)
req.send(null);
return req.responseText;
}
function mysql_consulta_valor(query, dato){
var req = new ajaxRequest();
var url = urlMysqlwsphp + "?q=" + query + "&d=" + dato + "&op=3";
req.open("GET", url, false)
req.send(null);
return req.responseText;
}
function ajaxRequest() {
try {
var request = new XMLHttpRequest();
} catch (e1) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e2) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e3) {
request = false;
}
}
}
return request;
}
Archivo PHP: mysql_js.php
Código PHP:
Ver original<?
$sql = $_GET['q'];
$op = $_GET['op'];
$dato = $_GET['d'];
switch($op)
{
case 1:
$res = mysql_consulta($sql);
break;
case 2:
$res = mysql_consulta_codigo($sql);
break;
case 3:
$res = mysql_consulta_valor($sql, $dato);
break;
}
echo $res;
return;
function mysql_consulta($sql)
{
include("include/conexion.php");
if(!$result){
return false;
}
return true;
}
function mysql_consulta_valor($sql, $dato)
{
include("include/conexion.php");
if(!$result){
return false;
}
{
$res = $fila[$dato];
}
else
{
$res = false;
}
return $res;
}
function mysql_consulta_codigo($sql)
{
include("include/conexion.php");
if(!$result){
$res = 3;
}
{
$res = true;
}
else
{
$res = false;
}
return $res;
}
?>
Por lo que veo, en IE la funcion mysql_consulta_valor devuelve el valor anterior o un 1.
Puede ser un tema de cache???
Esto este inspirado en la biblioteca mysqlws.js, ya que no se mucho de Ajax!!
Cualquier ayuda viene re bien!!!
Muchas Gracias!!!