Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Formulario en Ajax y llamada a funcion

Estas en el tema de Formulario en Ajax y llamada a funcion en el foro de Frameworks JS en Foros del Web. Hola amigos, tengo un pequeño problema con un formulario y ajax. Resulta que tengo un formulario para ir insertando datos en una BBDD, los inserta ...
  #1 (permalink)  
Antiguo 27/11/2007, 05:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 8
Antigüedad: 20 años, 7 meses
Puntos: 0
Formulario en Ajax y llamada a funcion

Hola amigos, tengo un pequeño problema con un formulario y ajax. Resulta que tengo un formulario para ir insertando datos en una BBDD, los inserta con una función en ajax, y una vez insertados muestro el mismo formulario para poder añadir más campos. La cosa es que el primer envio si lo procesa e inserta los datos, pero cuando se muestra el formulario que pone la función en ajax, este no pasa ningún valor, si llama a la funcion pero no le pasa ningún valor. Eso por un lado, luego tengo otra duda, ¿Como llamo a una función ajax dentro de otra función ajax, pq esto tb me funciona. GRacias y Saludos.

Estoy utilizando la libreria xajax:
function Procesar_Add_Vivienda($form_entrada) {

$newContent = "";

//$newContent .= $form_entrada['planta'];
//recogemos los datos y los guardamos en la tabla ventas
$planta = $form_entrada['planta'];
$tipo_construccion = $form_entrada['tipo_cons'];
$denominacion = $form_entrada['denominacion'];
$id_promocion = $form_entrada['id_promocion'];

mysql_query("INSERT INTO ventas SET id_promocion='$id_promocion', planta='$planta', tipo_vivienda='$tipo_construccion', denominacion='$denominacion'");

$newContent .= "<form id=\"form_add_vivienda\">";
$newContent .= "<p style=\"margin: 15px auto 15px auto;text-align: center;\">";
$newContent .= "<span class=\"negrita\">Planta:</span> <select name=\"planta\" class=\"texto_1\" style=\"\">";
$newContent .= "<option>Seleccione...</option>";
$newContent .= "<option>Planta Baja</option>";
$newContent .= "<option value=\"1\">Planta 1</option>";
$newContent .= "<option value=\"2\">Planta 2</option>";
$newContent .= "<option value=\"3\">Planta 3</option>";
$newContent .= "<option value=\"4\">Planta 4</option>";
$newContent .= "<option value=\"5\">Planta 5</option>";
$newContent .= "<option value=\"6\">Planta 6</option>";
$newContent .= "<option value=\"7\">Planta 7</option>";
$newContent .= "<option value=\"8\">Planta 8</option>";
$newContent .= "<option value=\"9\">Planta 9</option>";
$newContent .= "<option value=\"10\">Planta 10</option>";
$newContent .= "<option value=\"11\">Planta 11</option>";
$newContent .= "<option value=\"12\">Planta 12</option>";
$newContent .= "<option value=\"13\">Planta 13</option>";
$newContent .= "<option value=\"14\">Planta 14</option>";
$newContent .= "<option value=\"15\">Planta 15</option>";
$newContent .= "<option value=\"Atico\">Planta Atico</option>";
$newContent .= "</select>";
$newContent .= "<span class=\"negrita\" style=\"margin-left: 15px;\">Tipo de construcción:</span> <select name=\"tipo_cons\" class=\"texto_1\" style=\"\">";
$newContent .= "<option>Seleccione...</option>";
$newContent .= "<option>Local Comercial</option>";
$newContent .= "<option>Apartamento</option>";
$newContent .= "<option>Atico</option>";
$newContent .= "<option>Vivienda</option>";
$newContent .= "</select>";
$newContent .= "<span class=\"negrita\" style=\"margin-left: 15px;\">Denominación:</span> <input tipe=\"text\" name=\"denominacion\" class=\"texto_1\" style=\"width: 50px;\" />";
$newContent .= "<input type=\"button\" class=\"texto_1 negrita\" style=\"margin: 2px 0 0 10px;background-color: #ccc;border: 1px solid #FF9900;padding: 2px;\" value=\"Añadir...\" onclick=\"xajax_Procesar_Add_Vivienda(xajax.getFor mValues('form_add_vivienda'));\">";
$newContent .= "</p>";
$newContent .= "<input type=\"text\" name=\"id_promocion\" value=\"".$_GET['id']."\" />";
$newContent .= "</form>";







// Inicializar el objeto xajaxResponse
$objResponse = new xajaxResponse();
$objResponse->addAssign("add_vivienda","innerHTML", utf8_encode($newContent));

//return the XML response generated by the xajaxResponse object
return $objResponse;
}

Con esta funcion guardo la información en la tabla y vuelvo a mostrar el formulario, el formulario original es:
echo "<div id=\"add_vivienda\">";
echo "<form id=\"form_add_vivienda\" method='get'>";



echo "<p style=\"margin: 15px auto 15px auto;text-align: center;\">";
echo "<span class=\"negrita\">Planta:</span> <select name=\"planta\" class=\"texto_1\" style=\"\">";
echo "<option>Seleccione...</option>";
echo "<option value=\"Planta Baja\">Planta Baja</option>";
echo "<option value=\"1\">Planta 1</option>";
echo "<option value=\"2\">Planta 2</option>";
echo "<option value=\"3\">Planta 3</option>";
echo "<option value=\"4\">Planta 4</option>";
echo "<option value=\"5\">Planta 5</option>";
echo "<option value=\"6\">Planta 6</option>";
echo "<option value=\"7\">Planta 7</option>";
echo "<option value=\"8\">Planta 8</option>";
echo "<option value=\"9\">Planta 9</option>";
echo "<option value=\"10\">Planta 10</option>";
echo "<option value=\"11\">Planta 11</option>";
echo "<option value=\"12\">Planta 12</option>";
echo "<option value=\"13\">Planta 13</option>";
echo "<option value=\"14\">Planta 14</option>";
echo "<option value=\"15\">Planta 15</option>";
echo "<option value=\"Atico\">Planta Atico</option>";
echo "</select>";
echo "<span class=\"negrita\" style=\"margin-left: 15px;\">Tipo de construcción:</span> <select name=\"tipo_cons\" class=\"texto_1\" style=\"\">";
echo "<option>Seleccione...</option>";
echo "<option>Local Comercial</option>";
echo "<option>Apartamento</option>";
echo "<option>Atico</option>";
echo "<option>Vivienda</option>";
echo "</select>";
echo "<span class=\"negrita\" style=\"margin-left: 15px;\">Denominación:</span> <input tipe=\"text\" name=\"denominacion\" class=\"texto_1\" style=\"width: 50px;\" />";
echo "<input type=\"button\" class=\"texto_1 negrita\" style=\"margin: 2px 0 0 10px;background-color: #ccc;border: 1px solid #FF9900;padding: 2px;\" value=\"Añadir...\" onclick=\"xajax_Procesar_Add_Vivienda(xajax.getFor mValues('form_add_vivienda'));\">";
echo "</p>";
echo "<input type=\"hidden\" name=\"id_promocion\" value=\"".$_GET['id']."\" />";



echo "</form>";

echo "</div>";

Última edición por josedawik; 27/11/2007 a las 06:41
  #2 (permalink)  
Antiguo 27/11/2007, 06:22
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Re: Formulario en Ajax y llamada a funcion

Weno pon el codigo a ver.
  #3 (permalink)  
Antiguo 27/11/2007, 06:47
 
Fecha de Ingreso: septiembre-2003
Mensajes: 8
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Formulario en Ajax y llamada a funcion

Tambien tengo otra funcion, que es:
function Poner_Cuadroventas($id_promocion) {

$newContent = "";
$newContent .= rand(1,1000);
//$newContent .= $id_promocion;
$newContent .= "<table width='85%' align='center' style='border: 1px solid #ccc;'>";

$newContent .= "<tr>";
$newContent .= "<td style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Planta</td>";
$newContent .= "<td style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Vivienda</td>";
$newContent .= "<td style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Tipo Construcción</td>";
$newContent .= "<td style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Estado</td>";
$newContent .= "<td style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Dormitorios</td>";
$newContent .= "<td style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Superficie Útil</td>";
$newContent .= "<td width='80' style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Modificar</td>";
$newContent .= "<td width='80' style='color: #FFF;font-weight: bold;text-align: center;background-color: #0664B0;'>Eliminar</td>";
$newContent .= "</tr>";

$plantas = ";Planta Baja;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;Atico";
$plantas = explode(";",$plantas);
$num_plantas = count($plantas);

for ($i=0;$i<$num_plantas;$i++) {

$ord_planta = $plantas[$i];

$sql = mysql_query("SELECT * FROM ventas WHERE id_promocion='$id_promocion' AND planta='$ord_planta' ORDER BY denominacion ASC");
while ($fila = mysql_fetch_array($sql)) {

$newContent .= "<tr>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'>".$fila['planta']."</td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'>".$fila['denominacion']."</td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'>".$fila['tipo_vivienda']."</td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'>".$fila['estado']."</td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'>".$fila['n_dormitorios']."</td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'>".$fila['s_util']."</td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'><a href=''><img src='images/modificar.gif' alt='' style='border: 0;' /></a></td>";
$newContent .= "<td style='color: #0664B0;font-weight: bold;text-align: center;background-color: #e1e1e1;'><a href=''><img src='images/eliminar.gif' alt='' style='border: 0;' /></a></td>";
$newContent .= "</tr>";

}

}
$newContent .= "</table>";





// Inicializar el objeto xajaxResponse
$objResponse = new xajaxResponse();
$objResponse->addAssign("cuadro_ventas","innerHTML", utf8_encode($newContent));

//return the XML response generated by the xajaxResponse object
return $objResponse;
}

y quiero llamarla dentro de Procesar_Add_Vivienda(); pero no me va, ¿Como lo haria? Graicas.
  #4 (permalink)  
Antiguo 27/11/2007, 07:34
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Re: Formulario en Ajax y llamada a funcion

"<form id=\"form_add_vivienda\">"; revisa esta sintaxis deberia ser:
$newContent .= "<form id=\'form_add_vivienda\'>"; ciuidate del juego de comillas.

para llamr una funcion desde otra intenta esto con XAJAX, nunca lo he intentado pero prueba a ver.

$objResponse->addScript('xajax_Poner_Cuadroventas($id_promocion )');

suerte :)
  #5 (permalink)  
Antiguo 27/11/2007, 12:03
 
Fecha de Ingreso: septiembre-2003
Mensajes: 8
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Formulario en Ajax y llamada a funcion

Pues ni una cosa ni la otra. Porque lo del formulario lo he probado de varias formas y no va. Y en cuanto a llamar a una función dentro de la otra el $objResponse->addScript('xajax_Poner_Cuadroventas($id_promoci on )'); creo qeu por lo que he ledio es para poner javascript pero no funciona para llamar a otro funcion php/ajax si para javascript. Seguiré provando.

El problema en si, no es que el formulario no funcione, si no, que no pasa el valor de las variables. La función si va, pero eso, no pasa el valor.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:54.