Hola a toda la comunidad..
Bien soy nuevo y tengo un problema con una rutina..
Les pongo el codigo y despues les explico !!
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Plantilla:</td>
<td>
<?php
echo "<select name=\"categoria\" id=\"categoria\">";
$cate = sql_query("select id, nombre from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria) = sql_fetch_row($cate, $dbi)) {
$var1 = mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi);
$descr = $var1;
echo "<option value=\"$numero\">$numero - $categoria </option>";
}
echo "</select>";
?>
</td>
</tr>
</table>
La idea es deleccionar una plantilla y la que seleccione el usuario obtener el valor de la descripcion de la misma para posteriormente mostrarla para modificarla si el usuario lo quiere...
Todo el proceso lo hace bien, pero no me agarra el valor de la descripcion ocea $var1 siempre esta vacia...
Espero me ayuden..
Gracias..
BUsco en la otra máquina las rutinas y te digo que falla
Hola Gemisu, bienvenido.
while (list($numero, $categoria) = sql_fetch_row($cate, $dbi)) {
$var1 = mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi);
$descr = $var1;
echo "<option value=\"$numero\">$numero - $categoria </option>";
}
Dos cosas:
1- Estas seguro que el campo descr existe en esa tabla?
2- Dentro del while corres la consulta SQL, el resultado lo guardas en una variable ($var1), pero despues no la usas nunca (solo lo asignas a $descr). Podrias probar poner como debug un echo $var1; antes de la llave que cierra el while para ver si efectivamente esta vacia o no.
Baii y espero el feedback.
Gracias por la respuesta..
Cita de: PredicadorDos cosas:
1- Estas seguro que el campo descr existe en esa tabla?
2- Dentro del while corres la consulta SQL, el resultado lo guardas en una variable ($var1), pero despues no la usas nunca (solo lo asignas a $descr). Podrias probar poner como debug un echo $var1; antes de la llave que cierra el while para ver si efectivamente esta vacia o no.
Baii y espero el feedback.
Si el campo existe...
y Si puse el echo $var1 justamente despues de la consulta para ver su contenido y esta vacia...
De antemano gracias por la respuesta..
Yo lo tengo armado en un archivo de funciones SQL, que es el maestro de la aplicación, que incluye la conexión y todo eso, en una función
te pego el texto pertinente, fijate que te sirve
function sql_armadesplegable($sql_link, $sql_data) {
// función que genera un menu desplegable
// Datos: $sql_link = id de conexión mysql (retorno de sql_conectar)
// $sql_data = Array que contiene:
// [tabla] = tabla a armar deplegable
// [id] = nombre del campo de identificación
// [describ] = Nombre del campo que contiene descripción
// Devuelve variable $salida que es el desplegable (con echo se ejecuta)
// puede usarse echo sql_armadesplegable($sql_link, $sql_data)
$query = "SELECT $sql_data[id], $sql_data[describ] FROM ".$sql_data[tabla];
$result = mysql_query($query) or die ("Fallo la consulta");
$salida = "<select name=\"".$sql_data[tabla]."\">";
for ($i = 0; $i < mysql_num_rows ($result); $i++) {
if (!mysql_data_seek ($result, $i)) {
printf ("No se puede buscar en la fila %d\n", $i);
continue;
}
if (!($row = mysql_fetch_object ($result)))
continue;
$id = $row->$sql_data[id];
$describ = $row->$sql_data[describ];
$salida = $salida."<option value=\"$id\">".$describ."</option>";
}
$salida = $salida."</select>";
return $salida;
}
No te puedo orientar demasiado, pero podes copiarte lo que necesites, pq eso lo arme hace mucho para un sitio que estoy desarrollando y que obligaciones de estudio hicieron que lo dejara de lado hasta hace poco (lentamente lo estoy retomando)
Tu codigo:
$cate = sql_query("select id, nombre from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria) = sql_fetch_row($cate, $dbi)) {
$var1 = mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi);
En una consulta estas usando sql_query y en la otra mysql_query :? .
sql_query es un wrapper?
Quizas ahi este el problema.
Baii
PS: http://www.php.net/mysql_query
Bueno.
Lo de sql o mysql en la consulta es porque lo he puesto de mil maneras, haciendo pruebas para ver su resultado...
ahora bien, me he dado cuenta que cualquier variable que ponga ahi sale en blanco, cambie la consulta por $var1 = "esto me tiene mal" y cuando muestro la variable esta vacia..!!!!
Porque ??????
Tendrías que HAcer la consulta antes del while, y despues explorar el resultado de la misma
Pq haces una sola consulta, te genera una tabla virtual en memoria y depues la vas recorriendo
Cita de: gemisuBueno.
Lo de sql o mysql en la consulta es porque lo he puesto de mil maneras, haciendo pruebas para ver su resultado...
ahora bien, me he dado cuenta que cualquier variable que ponga ahi sale en blanco, cambie la consulta por $var1 = "esto me tiene mal" y cuando muestro la variable esta vacia..!!!!
Porque ??????
Si le asignas un valor directamente e inmediatamente la imprimis y aparece como vacia, creo que es por que realmente no se esta imprimiendo, como es eso? simple, quizas nunca esta entrando dentro del while ya que la condicion falla al primer intento.
Baii.
Cita de: PredicadorCita de: gemisuBueno.
Lo de sql o mysql en la consulta es porque lo he puesto de mil maneras, haciendo pruebas para ver su resultado...
ahora bien, me he dado cuenta que cualquier variable que ponga ahi sale en blanco, cambie la consulta por $var1 = "esto me tiene mal" y cuando muestro la variable esta vacia..!!!!
Porque ??????
Si le asignas un valor directamente e inmediatamente la imprimis y aparece como vacia, creo que es por que realmente no se esta imprimiendo, como es eso? simple, quizas nunca esta entrando dentro del while ya que la condicion falla al primer intento.
Baii.
Es cierto, deberías poner
echo "Esto es var1".$var1;Y si se imprime "Esto..." es pq funciona el while, caso contrario pasate a un for
:(
Definitivamente no carga ningun valor, sin embargo si pasa por la consulta..Puesto que muestra el echo con la variable en blanco..
ahora pregunto algo.. no hay manera de cargar la descripcion en la primera consulta, ya que la plantilla que el usuario seleccione
<?php
echo "<select name=\"categoria\" id=\"categoria\">";
$cate = sql_query("select id, nombre from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria) = sql_fetch_row($cate, $dbi)) {
echo "<option value=\"$numero\">$numero - $categoria </option>";
}
:?: ocea poner algo aqui ya que esta seleccion es la que
quiero la descripcion ????? :?:
echo "</select>";
?>
mo se si me explico ??
Gracias.
Aun recomiendo que dentro del while, inmediatamente despues de la consulta hagas un var_dump($var1); para ver el contenido total de la variable, ya que creo que el SQL query de descr te esta devolviendo un array, si es asi, podras ver de que tipo es (asociativo o no).
Seria bueno si ademas puede pegar aqui la salida por pantalla asi nos podemos guiar un poco mas.
Baii.
Creo que hice lo que me estas pidiendo var_dump($var1);
El resultado que me arroja es este "Resource #193"
de echo es la primera vez que lo veo...??
Cita de: gemisuCreo que hice lo que me estas pidiendo var_dump($var1);
El resultado que me arroja es este "Resource #193"
de echo es la primera vez que lo veo...??
Bien, lo que te devuelve es correcto, veamos por que:
Tu codigo:
while (list($numero, $categoria) = sql_fetch_row($cate, $dbi)) {
$var1 = mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi);
$descr = $var1;
echo "<option value=\"$numero\">$numero - $categoria </option>";
}Luego tenemos que:
Cita de: PHP.netFor SELECT, SHOW, DESCRIBE or EXPLAIN statements, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.
O sea, es normal el comportamiento, ya que como tu codigo hace es devolverte un resource (lo que salio impreso), luego vos debes usar mysql_fetch_array() para obtener las descripciones.... algo asi
$var1 = mysql_fetch_array(mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi), MYSQL_NUM);
$descr = $var1[0];
echo $descr;
Espero que eso solucione algunas cosas. Pero aun debes ver si la logica de tu programa es la correcta.
Baii.
Bueno ya no se que hacer, todo lo que pongo me sale en blanco
estoy loco
aunque no lo puedan ejecutar vean el codigo completo de la funcion
la parte que me interesa se las marque...
function metejuego() {
global $prefix, $dbi;
include ("header.php");
$envio = $_POST[envio];
$infante_nombre_1 = $_POST[infante_nombre_1];
$infante_nombre_2 = $_POST[infante_nombre_2];
$presenta_nombre_1 = $_POST[presenta_nombre_1];
$presenta_nombre_2 = $_POST[presenta_nombre_2];
$presenta_apellido_1 = $_POST[presenta_apellido_1];
$presenta_apellido_2 = $_POST[presenta_apellido_2];
$presenta_letraced = $_POST[presenta_letraced];
$presenta_cedula = $_POST[presenta_cedula];
$presenta_edocivil = $_POST[presenta_edocivil];
$presenta_natural = $_POST[presenta_natural];
$presenta_edad = $_POST[presenta_edad];
$presenta_domicilio = $_POST[presenta_domicilio];
$presenta_profecion = $_POST[presenta_profecion];
$presenta_parentezco = $_POST[presenta_parentezco];
$conyuge_nombre_1 = $_POST[conyuge_nombre_1];
$conyuge_nombre_2 = $_POST[conyuge_nombre_2];
$conyuge_apellido_1 = $_POST[conyuge_apellido_1];
$conyuge_apellido_2 = $_POST[conyuge_apellido_2];
$conyuge_letraced = $_POST[conyuge_letraced];
$conyuge_cedula = $_POST[conyuge_cedula];
$conyuge_edocivil = $_POST[conyuge_edocivil];
$conyuge_natural = $_POST[conyuge_natural];
$conyuge_edad = $_POST[conyuge_edad];
$conyuge_domicilio = $_POST[conyuge_domicilio];
$conyuge_profecion = $_POST[conyuge_profecion];
$conyuge_parentezco = $_POST[conyuge_parentezco];
$infante_sexo = $_POST[infante_sexo];
$infante_fecha_nac = $_POST[infante_fecha_nac];
$infante_natural = $_POST[infante_natural];
$infante_sitio_nac = $_POST[infante_sitio_nac];
$categoria = $_POST[categoria];
$descr = $_POST[descr];
$descr = "dsdsdsdsdsdsdsdsds";
if ($envio==1) {
if (empty($infante_nombre_1)) {
OpenTable();
echo "<center><h2>¡¡¡ ERROR !!!</h2>
Debes Poner el Primer Nombre del Infante (OBLIGATORIO).<br>
La Partida de Nacimiento (NO) ha sido añadida a la base de datos.<br>
</center>";
echo "<br><center><a href=\"admin.php?op=partidas_nacimiento\"><strong>Volver al menu principal</strong></a></center>";
CloseTable();
exit;
}
//Ahora metemos los datos en la BD.
$mete = sql_query("INSERT INTO ".$prefix."_partidas_nacimiento VALUES ('', '$infante_nombre_1', '$infante_nombre_2', '$presenta_nombre_1',
'$presenta_nombre_2', '$presenta_apellido_1', '$presenta_apellido_2', '$presenta_letraced', '$presenta_cedula', '$presenta_edocivil',
'$presenta_natural', '$presenta_edad', '$presenta_domicilio', '$presenta_profecion', '$presenta_parentezco', '$conyuge_nombre_1',
'$conyuge_nombre_2', '$conyuge_apellido_1', '$conyuge_apellido_2', '$conyuge_letraced', '$conyuge_cedula', '$conyuge_edocivil',
'$conyuge_natural', '$conyuge_edad', '$conyuge_domicilio', '$conyuge_profecion', '$conyuge_parentezco', '$infante_sexo', '$infante_fecha_nac',
'$infante_natural', '$infante_sitio_nac', '$categoria', '$descr', '', '', '')", $dbi);
if (!$mete) {
OpenTable();
echo "<center><h2>¡¡¡ ERROR !!!</h2>
La Partida de Nacimiento (NO) ha sido añadida a la base de datos.<br>
</center>";
echo "<br><center><a href=\"admin.php?op=partidas_nacimiento\"><strong>Volver al menu principal</strong></a></center>";
CloseTable();
exit;
}
else {
OpenTable();
echo "$descr <br> me estas jodiendo la vida";
echo "<center>Añadiendo Partida de Nacimiento en la base de datos:<br><br>
¡¡ Añadida a la base de datos con exito !!<br>
";
echo "<br><a href=\"admin.php?op=metejuego\"><strong>Añadir otra Partida de Nacimiento</strong></a><br>";
echo "<br><a href=\"admin.php?op=partidas_nacimiento\"><strong>Volver al menu principal</strong></a></center>";
CloseTable();
}
$pillanum = sql_query("select num from ".$prefix."_partidas_nacimiento_cat where id='$categoria'", $dbi);
list($num) = sql_fetch_row($pillanum, $dbi);
$num++;
$sumajcat = sql_query("update ".$prefix."_partidas_nacimiento_cat set num='$num' where id='$categoria'", $dbi);
if (!sumajcat) {echo "<center><b>No se ha podido SUMAR la Partida de Nacimiento a la categoria</b></center>";}
include ("footer.php");
}
OpenTable();
echo "<div align=\"center\"><strong><font color=\"#0033FF\">Añadir Partida de Nacimiento</font></strong></div><br>";
?>
<table width="450" border="1" align="center" cellpadding="1" cellspacing="0" bordercolor="#000000">
<tr>
<td><div align="center">
<form name="form2" method="post" action="">
<table width="671" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="182"><div align="right">Primer Nombre del Infante:</div></td>
<td width="132"><input name="infante_nombre_1" type="text" id="infante_nombre_1" size="15" maxlength="100"></td>
<td width="199"><div align="right">Segundo Nombre del Infante:</div></td>
<td width="125"><input name="infante_nombre_2" type="text" id="infante_nombre_2" size="15" maxlength="100"></td>
</tr>
</table>
<center>
<strong><font color="#FF0000">Datos de la Persona que Presenta al infante<br>
</font> </strong>
</center>
<table width="642" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="169" height="29">Primer Nombre:</td>
<td width="146"><input name="presenta_nombre_1" type="text" id="presenta_nombre_1" size="15" maxlength="100"></td>
<td width="153">Segundo Nombre:</td>
<td width="141"><input name="presenta_nombre_2" type="text" id="presenta_nombre_2" size="15" maxlength="100"></td>
</tr>
<tr>
<td height="33">Primer Apellido:</td>
<td><input name="presenta_apellido_1" type="text" id="presenta_apellido_1" size="15" maxlength="100"></td>
<td>Segundo Apellido:</td>
<td><input name="presenta_apellido_2" type="text" id="presenta_apellido_2" size="15" maxlength="100"></td>
</tr>
</table>
<table width="637" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="173">Cedula de Identidad Nro. :</td>
<td width="13"><input name="presenta_letraced" type="text" id="presenta_letraced" size="1" maxlength="100"></td>
<td width="82"><input name="presenta_cedula" type="text" id="presenta_cedula" size="8" maxlength="100"></td>
<td width="99">Estado Civil:</td>
<td width="230"><input name="presenta_edocivil" type="text" id="presenta_edocivil" size="1" maxlength="100"></td>
</tr>
</table>
<table width="642" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="119">Natural de:</td>
<td width="138"><input name="presenta_natural" type="text" id="presenta_natural" size="15" maxlength="100"></td>
<td width="82">
<td width="55">Edad:</td>
<td width="208"><input name="presenta_edad" type="text" id="presenta_edad" size="2" maxlength="100"></td>
</tr>
</table>
<table width="642" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Domicilio:</td>
<td><input name="presenta_domicilio" type="text" id="presenta_domicilio" size="40" maxlength="100"></td>
</tr>
</table>
<table width="642" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Profecion:</td>
<td><input name="presenta_profecion" type="text" id="presenta_profecion" ></td>
<td>Parentezco con el Infante:</td>
<td><input name="presenta_parentezco" type="text" id="presenta_parentezco" ></td>
</tr>
</table>
<center>
<strong><font color="#FF0000">Datos del Conyuge o Pareja de la Persona que Presenta al infante<br>
</font> </strong>
</center>
<table width="642" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="164">Primer Nombre:</td>
<td width="151"><input name="conyuge_nombre_1" type="text" id="conyuge_nombre_1" size="15" maxlength="100"></td>
<td width="152">Segundo Nombre:</td>
<td width="142"><input name="conyuge_nombre_2" type="text" id="conyuge_nombre_2" size="15" maxlength="100"></td>
</tr>
<tr>
<td>Primer Apellido:</td>
<td><input name="conyuge_apellido_1" type="text" id="conyuge_apellido_1" size="15" maxlength="100"></td>
<td>Segundo Apellido:</td>
<td><input name="conyuge_apellido_2" type="text" id="conyuge_apellido_2" size="15" maxlength="100"></td>
</tr>
</table>
<table width="637" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="166">Cedula de Identidad Nro. :</td>
<td width="14"><input name="conyuge_letraced" type="text" id="conyuge_letraced" size="1" maxlength="100"></td>
<td width="82"><input name="conyuge_cedula" type="text" id="conyuge_cedula" size="8" maxlength="100"></td>
<td width="98">Estado Civil:</td>
<td width="237"><input name="conyuge_edocivil" type="text" id="conyuge_edocivil" size="1" maxlength="100"></td>
</tr>
</table>
<table width="637" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="104">Natural de:</td>
<td width="156"><input name="conyuge_natural" type="text" id="conyuge_natural" size="15" maxlength="100"></td>
<td width="73">
<td width="50">Edad:</td>
<td width="214"><input name="conyuge_edad" type="text" id="conyuge_edad" size="2" maxlength="100"></td>
</tr>
</table>
<table width="637" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Domicilio:</td>
<td><input name="conyuge_domicilio" type="text" id="conyuge_domicilio" size="40" maxlength="100"></td>
</tr>
</table>
<table width="637" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Profecion:</td>
<td><input name="conyuge_profecion" type="text" id="conyuge_profecion" ></td>
<td>Parentezco con el Infante:</td>
<td><input name="conyuge_parentezco" type="text" id="conyuge_parentezco" ></td>
</tr>
</table>
<center>
<strong><font color="#FF0000">DATOS DEL INFANTE PRESENTADO<br>
</font> </strong>
</center>
<table width="642" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="182">Primer Nombre del infante:</td>
<td width="121">$infante_nombre_1</td>
<td width="185">Segundo Nombre del infante:</td>
<td width="121">$infante_nombre_2</td>
</tr>
<tr>
<td><div align="right">Sexo del Infante:</div></td>
<td><input name="infante_sexo" type="text" id="infante_sexo" size="1" maxlength="100"></td>
<td><div align="right">Fecha de Nacimiento:</div></td>
<td><input name="infante_fecha_nac" type="text" id="infante_fecha_nac" size="15" maxlength="100"></td>
</tr>
</table>
<table width="646" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="100">Natural de:</td>
<td width="94"><input name="infante_natural" type="text" id="infante_natural" size="15" maxlength="100"></td>
<td width="21">
<td width="136">Sitio de Nacimiento:</td>
<td width="255"><input name="infante_sitio_nac" type="text" id="infante_sitio_nac" size="40" maxlength="100"></td>
</tr>
</table>
// [b]ESTA ES LA PARTE DEL CODIGO ME ME INTERESA...[/b]
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Plantilla:</td>
<td>
<?php
echo "<select name=\"categoria\" id=\"categoria\">";
$cate = sql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = sql_fetch_row($cate, $dbi)) {
// $var1 = mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi);
// $veremos = var_dump($var1);
// $descr = $var1;
// $var1 = mysql_fetch_array(mysql_query("select nombre from ".$prefix."_partidas_nacimiento_cat", $dbi), MYSQL_NUM);
// $descr = $var1[0];
echo "<option value=\"$numero\">$numero - $categoria </option>";
}
echo "</select>";
?>
</td>
</tr>
</table>
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<tr>
</tr>
<tr>
</tr>
</table>
<table width="450" border="0" cellspacing="5" cellpadding="1">
<td> </td>
<td> </td>
</tr>
<tr>
<td><div align="center">
<input type="reset" name="Submit4" value="Borrar">
</div></td>
<td><div align="center">
<input type="submit" name="Submit5" value="Añadir Partida de Nacimiento">
<input name="envio" type="hidden" id="envio" value="1">
</div></td>
</tr>
</table>
</form>
</div></td>
</tr>
</table>
<?php
echo "<br><center><a href=\"admin.php?op=partidas_nacimiento\"><strong>Volver al menu principal</strong></a></center>";
CloseTable();
include ("footer.php");
}
A ver si pueden ????
A ver, creo haber entendido que queres obtener un menu del tipo dropdown que tenga como index ID y muestre el numero (ID), la categoria y la descripcion, si es asi, el siguiente codigo lo haria (puse que cambiaria y que sacaria).
echo "<select name=\"categoria\" id=\"categoria\">";
$cate = mysql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = mysql_fetch_array($cate, MYSQL_NUM)) {
// (1)**** Realmente no entiendo la razon de este codigo, $descr es cargado...
// durante la evaluacion de la condicion del while
// $var1 = mysql_query("select descr from ".$prefix."_partidas_nacimiento_cat", $dbi);
// $veremos = var_dump($var1);
// $descr = $var1;
// (1) end ****
// (2) **** Segun lo que entiendo que queres...
// yo cambiaria echo "<option value=\"$numero\">$numero - $categoria </option>"; por:
echo "<option value=\"$numero\">$numero - $categoria - $descr</option>";
// (2) end ****
}
echo "</select>";
Si no es esto, seria bueno que expliques las tablas implicadas con sus campos y las relaciones entre ellas, asi seria mas entendible.
Me preocupa que en algunos lugares uses sql_query() ya que tal funcion no es standard de php, quizas sea una funcion wrapper definida en algun modulo, ya que deberias usar mysql_query() las consultas (o pg_query() en caso que uses un postgressql server).
Para algun Admin: en algunos foros el bbcode [code] permite formas del estil [code="php"] para decir que el codigo es PHP y hace el resaltado de syntaxis especifico a ese lenguaje, seria lindo si pudiesemos tener algo asi aca tambien (o en la futura seccion Programacion). Gracias.
Baii y exitos gemisu, y si no sale... seguiremos intentando.
Mira te explico..!!
Cita de: PredicadorA ver, creo haber entendido que queres obtener un menu del tipo dropdown que tenga como index ID y muestre el numero (ID), la categoria y la descripcion, si es asi, el siguiente codigo lo haria (puse que cambiaria y que sacaria).
Bueno casi casi,
que tenga como index ID y muestre el numero (ID), la categoria pero la descripcion, la carge en una variable para despues incertarla en un campo texto un (textarea), pero lo que me esta matando es que no cargo la descripcion en la variable.. el campo descr es la descripcion de la categoria (que es una plantilla) y es tipo "text" poe eso no la pongo con el id y la categoria (imagina la pantalla de grande??)
Cita de: PredicadorSi no es esto, seria bueno que expliques las tablas implicadas con sus campos y las relaciones entre ellas, asi seria mas entendible.
la tabla partidas_nacimiento digamos que es la maestra donde se almacenan todos los datos... y los campos estan en el script que puse completo..
la tabla partidas_nacimiento_cat es el catalogo de categorias, esto no es mas que plantillas creadas por el usuario para no hacer trancripciones en la partida de nacimiento y los campos son id, nombre, descr (text)
Cita de: PredicadorMe preocupa que en algunos lugares uses sql_query() ya que tal funcion no es standard de php, quizas sea una funcion wrapper definida en algun modulo, ya que deberias usar mysql_query() las consultas (o pg_query() en caso que uses un postgressql server).
Si es una funcion que tengo definida en otro modulo junto con muchas otras ej. un datacontrol creado con todas la funciones..
Bueno ojala me entiendas, hoy no he tocado la maquina para ver si la mente se despeja.
Bueno Mil gracias y Saludos ,espero ver otras sugerencias... jajaja
Voy a ver si mañana puedo ver bien este topic... sino el miercoles...
Salu2
Cita de: gemisuBueno casi casi, que tenga como index ID y muestre el numero (ID), la categoria pero la descripcion, la carge en una variable para despues incertarla en un campo texto un (textarea), pero lo que me esta matando es que no cargo la descripcion en la variable.. el campo descr es la descripcion de la categoria (que es una plantilla) y es tipo "text" poe eso no la pongo con el id y la categoria (imagina la pantalla de grande??)
Realmente sigo sin enteder entonces que es lo que queres, lo siento. Ademas recorda que no vas atener una descripcion, sino una por cada item del menu.
Baii.
Bueno, estuve dandole vueltas a tu post... luego de hacer una pagina completa con tu codigo e intentar ver lo que querias lograr, se me ocurrio algo. A mi (nuevo) entender queres seleccionar una de las opciones cargadas en el dropdown box y que la descripcion correspondiente a esa categoria seleccionada aparezca en un inputbox mas abajo. Bien, si eso es lo que queres, este codigo lo haria:
// <b>ESTA ES LA PARTE DEL CODIGO ME ME INTERESA...<b>
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Plantilla:</td>
<td>
<?php
// el onchange() hace que cada vez que cambies el dropdown asigne el atributo label al inputobox descr
// NO SE CUANTOS CARACTERES SOPORTA EL ATRIBUTO LABEL, asi que podria fallar para textos largos.
// La otra solucion es ya usar AJAX para resolver este problema.
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"this.form.descr.value = this.options[this.selectedIndex].label\">";
$cate = mysql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = mysql_fetch_array($cate, MYSQL_NUM)) {
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>";
}
echo "</select>";
?>
</td>
</tr>
<tr>
<!-- Agrego este inputbox para recibir la descripcion desde la plantilla -->
<td>Descripcion:</td>
<td><input name="descr" type="text" id="descr" size="40" maxlength="100"></td>
</tr>
</table>
Fijate que agregue el input box "descr" al final que es el que va a recibir las descripcion de la plantilla y permitirte hacer el cambio que se quiera hacer, luego ese input box es el que usaras para hacer el INSERT en la base de datos.
Para ver como funcionaria pueden guardar el siguiente codigo en un archivo con extension .html y abrirlo en su browser de preferencia:
<html>
<body>
<form name="form2" method="post" action="">
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Plantilla:</td>
<td>
<!-- Cambios hechos por mi -->
<select name="categoria" id="categoria" onchange="this.form.descr.value = this.options[this.selectedIndex].label">
<option value="1" label="Argento">1 - Tipo 1 </option>
<option value="2" label="peer to peer">2 - Tipo 2 </option>
<option value="3" label="rulz">3 - Tipo 3 </option>
</select>
<!-- Fin cambio -->
</td>
</tr>
<tr>
<!-- Agrego este inputbox para recibir la descripcion desde la plantilla -->
<td>Descripcion:</td>
<td><input name="descr" type="text" id="descr" size="40" maxlength="100"></td>
</tr>
</table>
</form>
</body>
</html>
El efecto final se usa haciendo un pequeño hack al usar de repositorio de informacion a un atributo que no es necesario para el funcionamiento de la pagina y que no afecta en nada, de ese modo nos salva las papas bastante.
Baii.
Perfecto !!!!!
Captastes la idea 100%
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Plantilla:</td>
<td>
<?php
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"this.form.descr.value = this.options[this.selectedIndex].label\">";
$cate = mysql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = mysql_fetch_array($cate, MYSQL_NUM)) {
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>";
}
echo "</select>";
?>
</td>
</tr>
<tr>
<!-- Agrego este inputbox para recibir la descripcion desde la plantilla -->
<td><input name="descr" type="text" id="descr" size="80" maxlength="100"></td>
</tr>
</table>
Lo hace perfecto, pero cambie la linea del input name por textarea que seria como va!! pero no obtengo el mismo resultado ??
seria asi...
<td><textarea name="descr" cols="80" rows="15" id="descr">
</textarea></td>
Sin embargo asi si va!!!
<html>
<body>
<form name="form2" method="post" action="">
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td>Plantilla:</td>
<td>
<!-- Cambios hechos por mi -->
<select name="categoria" id="categoria" onchange="this.form.descr.value = this.options[this.selectedIndex].label">
<option value="1" label="Argento">1 - Tipo 1 </option>
<option value="2" label="peer to peer">2 - Tipo 2 </option>
<option value="3" label="rulz">3 - Tipo 3 </option>
</select>
<!-- Fin cambio -->
</td>
</tr>
<tr>
<!-- Agrego este inputbox para recibir la descripcion desde la plantilla -->
<td><textarea name="descr" cols="80" rows="15" id="descr">
</textarea></td>
</tr>
</table>
</form>
</body>
</html>
Hola gemisu, una cosa que se me paso nombrar y que estimo que es el problema, es que este metodo no soporta descripciones que contengan retornos de carro (o sea, que contengan caracteres correspondientes a la tecla "enter").
Ya para soportar el caracter de la tecla enter se deberia de crear un sistema un poco mas complejo simulando AJAX (o sea, realizar una consulta en tiempo real cada vez que se elige una opcion diferente en el menu drop-down.
Si podes presumir de los enter, solo se haria el stripping de caracteres enter a la variable $descr antes de imprimirla, esto es:
echo "<option value=\"$numero\" label=\"". strtr($descr,"\n"," "). "\">$numero - $categoria</option>";
Sino se deberia eliminar este hack y usar un esquema alternativo.
Vos decidis, de todos modos voy a ver si te armo un ejemplo del esquema alternativo.
Baii.
Ok. ya lo tengo funcionando.... con el textarea en vez del input
Que bien..
El problema lo tenia en el editor tinyMCE con el que trabajo en java..
Pero ahora te pregunto..
Cual es la diferencia de una variable a el campo textarea ???
O bien para que me entiendas..
en el campo descr esta escrito por ejemplo.
Yo el funcionario xxxx estoy presentando a una niña de nombre $infante_nombre_1 $ infante_nombre_2 y la mama se llama $presenta_nombre_1
y la idea es que cuando lo muestre en el text area las variables tengan el valor correspondiente.. Me entiendes ???
Gracias
Cita de: gemisuen el campo descr esta escrito por ejemplo.
Yo el funcionario xxxx estoy presentando a una niña de nombre $infante_nombre_1 $ infante_nombre_2 y la mama se llama $presenta_nombre_1
El ejemplo que pones no tiene nada que ver con que sea un textarea o un input box, la diferencia es que ambos corren en instancias totalmente distintas, las variables que vos decis funcionan en PHP, o sea, en el momento en que la pagina se genera y del lado del servidor, en tal caso, deberias hacer el reemplazo de las variables or su respectivo valor durante el echo (o re evaluarlo), por ejemplo:
Si dentro de descr en la tabla vos tenes guardado el texto:
CitarYo el funcionario xxxx estoy presentando a una niña de nombre $infante_nombre_1 $ infante_nombre_2 y la mama se llama $presenta_nombre_1
Y queres que esas variables sean reemplazadas por los valores correspondientes a los asigandos en esa instancia de ejecucion, el codigo:
echo "<option value=\"$numero\" label=\"". strtr($descr,"\n"," "). "\">$numero - $categoria</option>";deberias cambiarlo por:
echo "<option value=\"$numero\" label=\"". eval(strtr($descr,"\n"," ")). "\">$numero - $categoria</option>";De esa manera, la cadena se reevaluara de acuerdo al entorno y la cadena de salida sera de la forma:
CitarYo el funcionario xxxx estoy presentando a una niña de nombre Josefina Pepita y la mama se llama Anne-Gry
Siendo que en ese contexto de ejecucion....
$infante_nombre_1 era Josefina
$infante_nombre_1 era Romina
$presenta_nombre_1 era Anne-Gry
Me explico o medio confuso?
Baii.
ok el codigo que tengo actual mente es este
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>";
Y funciona de maravillas, con la diferencia que no veo el valor de las variables!!
Y este, que me dices que ponga..
echo "<option value=\"$numero\" label=\"". eval(strtr($descr,"\n"," ")). "\">$numero - $categoria</option>";
No muestra nada en absoluto... te pongo el codigo completo..
<table width="327" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="153">Plantilla:</td>
<td width="278">
<?php
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"this.form.descr.value = this.options[this.selectedIndex].label\">";
$cate = mysql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = mysql_fetch_array($cate, MYSQL_NUM)) {
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>";
}
echo "</select>";
?>
</td>
</tr>
</table>
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td><textarea name="descr" cols="80" rows="15" id="descr">
</textarea></td>
</tr>
</table>
Asi funciona pero sin el valor de las variables...
Gracias
Bueno, separemos un poco las cosas.
PHP corre en el servidor, o sea, del otro lado del cliente (la persona que usa el browser) y javascript corre del lado del cliente (lejos o cerca del servidor, pero normalmente en una computadora aparte).
Si mal no entiendo (luego de recapitular), vos queres reemplazar esas variables (que a decir verdad en el planteo que hago serian solo pseudo variables) por lo que los nombres que la persona tipeo mas arriba en el formulario. En ese caso, ya el codigo php se ejecuto y ademas los valores de los textbox no son alcanzables, entonces debes hacer el reemplazo con javascript, esto es....
<textarea name="descr" cols="80" rows="15" id="descr"" onChange="
/*
Reemplaza una subcadena de una string por otra.
Funcion sacada de la red, no me hago responsable por que ande o no
*/
function replace(s, t, u) {
/*
** Replace a token in a string
** s string to be processed
** t token to be found and removed
** u token to be inserted
** returns new String
*/
i = s.indexOf(t);
r = "";
if (i == -1) return s;
r += s.substring(0,i) + u;
if ( i + t.length < s.length)
r += replace(s.substring(i + t.length, s.length), t, u);
return r;
}
/* Y aca la llamamos y hacemos los reemplazos */
TempDesc = new String(this.label);
TempDesc = replace(TempDesc,'$infante_nombre_1',this.form.infante_nombre_1);
TempDesc = replace(TempDesc,'$infante_nombre_2',this.form.infante_nombre_2);
TempDesc = replace(TempDesc,'$presenta_nombre_1',this.form.presenta_nombre_1);
this.form.descr.value = TempDesc">
Una vez que el textarea cambia, hace el reemplazo de las cadenas $infante_nombre_1 por lo que contiene el input box infante_nombre_1 y lo mismo con los otros dos, luego almacena ese valor en el textarea.
Si quieres puede implementar todo es codigo como una funcion aparte de modo que quede mas ordenado, eso si, deberias pasarle como parametro el this.form asi sabe a que formulario se refiere y dentro de la funcion cambiar el this.form por el parametro de entrada.
Baii y espero que ande, realmente no pude testear el codigo, pero creo que es correcto.
Cualquier cosa sigo a disposicion.
Perdon cualquier typo que pude haber cometio, me pasa al escribir rapido.
EDIT: lo demas deberias dejarlo como esta.
Realmente el codigo creo que va a degradar la performance, ya que segun me parece, intentara hacer el reemplazo por cada vez que presione una tecla sobre el textarea, quizas seria mejor hacer el reemplazo al momento de aplicar el hack, o sea, en el onchange del dropdown menu, eso lo haria mas eficiente, eso si, deberas ajustar la forma de acceder el textarea.
Bueno, al final deje el post anterior para que se vea otra froma de lograrlo (menos optima) y aca la forma que segun creo seria mas optima, esto es hacer el reemplazo de los patrones por los valores del formulario al momento de copiar la plantilla en el textarea:
Entonces, reemplazar:
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"this.form.descr.value = this.options[this.selectedIndex].label\">";
Por:
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"
/*
Reemplaza una subcadena de una string por otra.
Funcion sacada de la red, no me hago responsable por que ande o no
*/
function replace(s, t, u) {
/*
** Replace a token in a string
** s string to be processed
** t token to be found and removed
** u token to be inserted
** returns new String
*/
i = s.indexOf(t);
r = "";
if (i == -1) return s;
r += s.substring(0,i) + u;
if ( i + t.length < s.length)
r += replace(s.substring(i + t.length, s.length), t, u);
return r;
}
/* Y aca la llamamos y hacemos los reemplazos */
TempDesc = new String(this.options[this.selectedIndex].label);
TempDesc = replace(TempDesc,'$infante_nombre_1',this.form.infante_nombre_1);
TempDesc = replace(TempDesc,'$infante_nombre_2',this.form.infante_nombre_2);
TempDesc = replace(TempDesc,'$presenta_nombre_1',this.form.presenta_nombre_1);
this.form.descr.value = TempDesc\">";
Y podrias dejar el textarea como estaba antes, o sea, solo
<textarea name="descr" cols="80" rows="15" id="descr">
Baii.
me imagino q cuando haya seccion de programacion , predicador va a ser el moderador no??
:D
Bueno dejame ver el codigo y analizarlo un poco para poder entenderlo al 100%, lo que pasa es que estoy en otra actividad que me ocupò totalmente en tiempo en relacion a mi familia, y mañana retomare nuevamente el pc, estaba observando algo, 193 lecturas en apenas dos dias, jajaja, parece que la comunidad nos va siguiendo para ver el resultado, eso es algo lindo que deben mantener, y los comentarios son bastante buenos, y Si deberian mantener un hilo de Programacion para consulta de inquietudes y problemas de la comunidad, que es la idea, creo.
Bueno uns Saludo a todos y especialmente a ti Predicador, que me has dado tremenda mano, bueno ya nos falta poquitico jajajja.
Continuamos mañana en lo que se recupere mi hijo....
Saludos a todos. bay :wink:
Antes que nada espero que se recupere tu hijo, y si, la familia antes que el coding ;)
De todos modos este tiempo me vino bien para poder dormir, y ya desde la oficina pero aun sin cafe (que llegara en 5 minutos) me di cuenta que habia cometido unos pequeños errores en el codigo anterior, asi que hice una version alternativa y mas ordenada (pero con el mismo efecto final y sin los errores claro).
Debes agregar entre </header> y <body> lo siguiente:
<script type="text/javascript">
/*
Reemplaza una subcadena de una string por otra.
Funcion sacada de la red, no me hago responsable por que ande o no, pero si, anda :D
*/
function replace(s, t, u) {
/* Replaces token t by u in string s */
i = s.indexOf(t);
r = "";
if (i == -1) return s;
r += s.substring(0,i) + u;
if ( i + t.length < s.length)
r += replace(s.substring(i + t.length, s.length), t, u);
return r;
}
</script>
Esta es la funcion que se encarga de hacer los reemplazos y que llamaremos desde el onchange.
Y luego el echo del select seria tan solo asi:
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"TempDesc = new String(this.options[this.selectedIndex].label); TempDesc = replace(TempDesc,'$infante_nombre_1',this.form.infante_nombre_1.value); TempDesc = replace(TempDesc,'$infante_nombre_2',this.form.infante_nombre_2.value); TempDesc = replace(TempDesc,'$presenta_nombre_1',this.form.presenta_nombre_1.value); this.form.descr.value = TempDesc\">";
Para los que quieran probar como se siente, pueden pegar el siguiente codigo en un archivo de extension .html
<html>
<script type="text/javascript">
/*
Reemplaza una subcadena de una string por otra.
Funcion sacada de la red, no me hago responsable por que ande o no, pero si, anda :D
*/
function replace(s, t, u) {
/* Replaces token t by u in string s */
i = s.indexOf(t);
r = "";
if (i == -1) return s;
r += s.substring(0,i) + u;
if ( i + t.length < s.length)
r += replace(s.substring(i + t.length, s.length), t, u);
return r;
}
</script>
<body>
<form name="form2" method="post" action="">
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td><input name="infante_nombre_1" type="text" size="40" maxlength="100"></td>
</tr>
<tr>
<td><input name="infante_nombre_2" type="text" size="40" maxlength="100"></td>
</tr>
<tr>
<td><input name="presenta_nombre_1" type="text" size="40" maxlength="100"></td>
</tr>
<tr>
<td>Plantilla:</td>
<td>
<select name="categoria" id="categoria" onchange="TempDesc = new String(this.options[this.selectedIndex].label); TempDesc = replace(TempDesc,'$infante_nombre_1',this.form.infante_nombre_1.value); TempDesc = replace(TempDesc,'$infante_nombre_2',this.form.infante_nombre_2.value); TempDesc = replace(TempDesc,'$presenta_nombre_1',this.form.presenta_nombre_1.value); this.form.descr.value = TempDesc">
<option value="1" label="Yo $infante_nombre_1, le vendo mi alma a $infante_nombre_2.">1 - Tipo 1 </option>
<option value="2" label="$infante_nombre_1 y $infante_nombre_2 me recomendaron Ap2p">2 - Tipo 2 </option>
<option value="3" label="$presenta_nombre_1 no sabe lo que dice!!!!">3 - Tipo 3 </option>
</select>
</td>
</tr>
<tr>
<td>Descripcion:</td>
<td><input name="descr" type="text" id="descr" size="40" maxlength="100"></td>
</tr>
</table>
</form>
</body>
</html>
Baii.
Bueno Saludos
Retomo el tema
ya vi tus ejemplos, los voy a probar a ver.
Te pongo el Promero que funciono pero con las variables en el texto...
<table width="327" border="0" cellspacing="5" cellpadding="1">
<tr>
<td width="153">Plantilla:</td>
<td width="278">
<?php
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"this.form.descr.value = this.options[this.selectedIndex].label\">";
$cate = mysql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = mysql_fetch_array($cate, MYSQL_NUM)) {
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>";
}
echo "</select>";
?>
</td>
</tr>
</table>
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td><textarea name="descr" cols="80" rows="15" id="descr">
</textarea></td>
</tr>
</table>
y Ahora igual pero cambiando el echo select name
echo "<select name=\"categoria\" id=\"categoria\" onchange=\"TempDesc = new String(this.options[this.selectedIndex].label); TempDesc = replace(TempDesc,'$infante_nombre_1',this.form.infante_nombre_1.value); TempDesc = replace(TempDesc,'$infante_nombre_2',this.form.infante_nombre_2.value); TempDesc = replace(TempDesc,'$presenta_nombre_1',this.form.presenta_nombre_1.value); this.form.descr.value = TempDesc\">";
Claro incluyendo esl script arriba..
Bueno este ejemplo me duplica la opcion del menu de seleccion ocea pone dos cuadritos de seleccion pero sin datos (vacio)
No se si me entiendes..
Y nuevamente muchas gracias por la ayuda..
Mmmmmmh, raro como se comporta, yo aca probe...
<select name="categoria" id="categoria" onchange="TempDesc = new String(this.options[this.selectedIndex].label); TempDesc = replace(TempDesc,'$infante_nombre_1',this.form.infante_nombre_1.value); TempDesc = replace(TempDesc,'$infante_nombre_2',this.form.infante_nombre_2.value); TempDesc = replace(TempDesc,'$presenta_nombre_1',this.form.presenta_nombre_1.value); this.form.descr.value = TempDesc">
<?php
$cate = mysql_query("select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi);
while (list($numero, $categoria, $descr) = mysql_fetch_array($cate, MYSQL_NUM)) {
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>";
}
?>
</select>
</td>
</tr>
</table>
<table width="450" border="0" cellspacing="5" cellpadding="1">
<tr>
<td><textarea name="descr" cols="80" rows="15" id="descr">
</textarea></td>
</tr>
</table>
y se comporta como deberia, claro que en vez del codigo PHP habia puesto:
<option value="1" label="Yo $infante_nombre_1, le vendo mi alma a $infante_nombre_2.">1 - Tipo 1 </option>
<option value="2" label="$infante_nombre_1 y $infante_nombre_2 me recomendaron Ap2p">2 - Tipo 2 </option>
<option value="3" label="$presenta_nombre_1 no sabe lo que dice!!!!">3 - Tipo 3 </option>
que en fin seria muy parecido al codigo que generaria el
while en PHP.
Ademas lo probe con IE6, FF y Opera.
Pero si decis:
CitarBueno este ejemplo me duplica la opcion del menu de seleccion ocea pone dos cuadritos de seleccion pero sin datos (vacio)
Pareciera que el problema esta en el while que genera las opciones del menu.
Estas corriendo el script en tu misma maquina o en un server externo? si es externo te pediria por favor si me podes dar la URL asi veo como queda el codigo HTML generado o podrias darle una mirada al codigo HTML que obtenes una vez visualizada la pagina en tu browser y copy&pastear esa parte aca.
Otra cosa no se me ocurre por ahora.
Baii :D
Hola, mira una pregunta ??
bueno otra..
si yo tengo esto
$variable = "yo ; hago constar que hoy diadehoy; me ha sido presentado en este despacho una niña por la ciudadana $presenta_nombre_1 $presenta_nombre_2 $presenta_apellido_1 $presenta_apellido_1 $presenta_apellido_2 ; quien dice ser su madre y expuso que la niña que presenta nacio en $infante_sitionac, de $infante_natural , el dia $infante_fechanac , que tiene como nombre [infante_nombre_1] [infante_nombre _2]: hija de la presentante de $presenta_edad de edad; $presenta_edocivil; $presenta_profecion; $presenta_cedula; natural de $presenta_natural y vecina de esta ciudad."
Que seria el contenido del campo descr pero en una variable vulgar y silvestre.
y luego digo :
echo "$variable"
mostraria esto :
Yo haho constar que hoy diadehoy; me ha sido presentado en este despacho una niña por la ciudadana el nombre que ponga igual ; quien dice ser su madre y expuso que la niña que presenta nacio en donde nacio, de el sitio , el dia x , que tiene como nombre el nombre del niño: hija de la presentante de 12 años; casada; abogado; cedula xxxxxx; natural de ciudad y vecina de esta ciudad.
la pregunta en si..
No har manera de digamos validar la variable $descr con una especie de VAL() para depues mandarla al textedit ???
No se si me explico..?
Hola,
No, lo que pedis no es posible hacerlo puramente en PHP, por que el codigo PHP esta trabajando mientras se genera la pagina, una vez generada la pagina PHP deja de usarse, y en el momento de la generacion, los textbox aun no contienen informacion alguna.
Una vez que la persona ingresa algo en un textbox, este valor puede ser leido, pero no usando PHP, ya que el codigo PHP ni siquiera es visible, por eso es que en el codigo que te pase se usa javascript, por que el javascript si corre en el momento en que la persona esta completando los datos.
El codigo javascript que puse lo que hace es que cuando la persona elige una opcion en el dropdown de categoria, javascript se encarga de tomar el texto almacenado en la variable LABEL del OPTION (que fue rellenado cuando la pagina se generaba usando php), y hacer el reemplazo de $presenta_nombre_1 (que no son variables de PHP, sino que son una parte mas del texto, que se usa como patron para saber donde insertar los datos que provienen del los textbox) por los valores correspondiente en los textbox. Ha de haber tantos reemplazos como patrones a reemplazar haya en la plantilla.
Creo que es muy importante que veas los diferentes momentos donde se ejecuta php y donde javascript, y que veas que valores pueden leer desde cada lado.
Recapitulando, php solo se ejecuta al momento que se compone la pagina (o sea, compone la pagina que la persona vera), javascript se puede ejecutar mientras la persona mira la pagina y completa los datos.
Exitos!
Baii.
Hola Predicador, Saludos.
Despues de algun tiempo sin tomar mi maquina, vi tu mensaje y te entiendo.
Ahora tratado de hacer lo que quiero y al no poder, entonces decidi dejar la actualizacion como esta, la plantilla con las variables..
Pero en las consultas si debo reemplazar el valor de las mismas, te pongo el script para que lo veas..
$id = intval(trim($id));
$sql = "SELECT * FROM ".$prefix."_partidas_nacimiento WHERE id='$id'";
$result = $db->sql_query($sql);
$numrows = $db->sql_numrows($result);
if ( $numrows > 0 ) {
$row = $db->sql_fetchrow($result);
$id = $row[id];
$infante_nombre_1 = $row[infante_nombre_1];
$infante_nombre_2 = $row[infante_nombre_2];
$infante_fecha_nac = $row[infante_fecha_nac];
$descr = eregi_replace("[infante_nombre_1]", $infante_nombre_1, $row[Descr]);
// $Descr = $row[Descr];
echo "<tr><td><b><center>"._AINF."</center></b><br><br>"
. "<b>"._AART.":</b> $id <br>"
. "<b>"._AALB.":</b> $infante_nombre_1 $infante_nombre_2<br>"
. "<b>"._ASIGNUP.":</b> $infante_fecha_nac <br>"
. "<tr><td><b><center>"._AADET."</center></b><br><br>"
. "<b></b> $Descr <br>";
} else {
echo "<tr><td><center>"._ANOTFOUND."</center></td></tr>";
}
Como veras trate de reemplazar con eregi_replace (probando )
Bueno Saludos y a ver que me dices..
Gracias
Ok,
ya me da al menos un resultado positivo asi
$Descr = eregi_replace("\[infante_nombre_1\]", $infante_nombre_1, $row[Descr]);
Ahora, como defino todas las variables ???
Hola gemisu,
Realmente no se si te conviene meterte con eregi_replace() ya que estarias incrementando la comlpejidad innecesariamente, una mejor y mas simple solucion en este caso es usar str_replace()
Veamos como...
en vez de:
$Descr = eregi_replace("\[infante_nombre_1\]", $infante_nombre_1, $row[Descr]);
Seria:
$Descr = str_replace("infante_nombre_1", $infante_nombre_1, $row[Descr]);
Si bien eregi_replace() es mucho mas potente (por el hecho usar expresiones regulares) tambien su ejecucion puede ser mas lenta.
Pero no se por que quieres hacer reemplazo en el campo descr, crei que esa era la informacion ingresada por la persona (tomada de la plantilla, pero con los nombre automaticamente reemplazados con el codigo javascript), entonces en descr no deberia haber ningun patron a reemplazar, o me equivoco?
Baii.