Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2013, 05:18
radvla
 
Fecha de Ingreso: agosto-2013
Mensajes: 40
Antigüedad: 10 años, 8 meses
Puntos: 0
usar php-ajax para generar un campo calculado en formularios

Hola a todos:

1º)Estoy perdido con un "problema" en el manejo de formularios que ya tiene que estar solucionado desde hace mucho tiempo.

Se trata de genera un campo calculado, sin tener que recoger todos los datos con $get o $post, sino de que la pantalla se vaya refrescando con los camps caluclados que se derivan de los datos que mete el usuario.

He empezado por el caso más sencillo , multiplicar por dos el primer campo del formulario que introduce el usuario y sacarlo en el segundo campo.

2º) Estoy usando ajax para eso de esta forma.Algo estoy haciendo mal:

2.1 primero cargo la libreria ,que está en el directoriio htdocs de xampp:

require ('e:\xampp\htdocs\xajax\xajax.inc.php

2.2//instanciamos el objeto de la clase xajax
$xajax = new xajax();

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests();


2.3 Defino la función ajax en el <head>

<html>
<head>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
<title>Si / No en Ajax</title>

<?php


//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario

$xajax->printJavascript('e:\xampp\htdocs\xajax');

// la función ajax:

function refrescar($data){
$data[1]=$data[0]*2;

// recibiré el valor de los campos del formulario usando la función ajax //xajax.getFormValues('nombreformulario')

//instanciamos el objeto para generar la respuesta con ajax

$respuesta = new xajaxResponse();
//escribimos en la capa con id="respuesta" el texto que aparece en $salida
$respuesta->addAssign("respuesta","innerHTML",$data);

return $respuesta;

//asociamos la función creada anteriormente al objeto xajax

$xajax->registerFunction("refrescar");
?>
</head>

2.4 en el body defino el formulario:

<body>
<div id="respuesta"></div>

<form name="cuentas">

<input type="int" name="numeropiezas0" value="0" onfocus="xajax_refrescar(xajax.getFormValues('cuen tas'))">

Es ahora cuando no se como hacer que el resultado de la funcion "cuentas" se transmita al siguiete input.

<input type="int" name="preciopiezas0" value="???">

</form>