Programacion

Publicado por gemisu, Septiembre 09, 2005, 21:33:48

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

gemisu

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&#93;.label\">"
$cate mysql_query&#40;"select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi&#41;; 
while &#40;list&#40;$numero, $categoria, $descr&#41; = mysql_fetch_array&#40;$cate, MYSQL_NUM&#41;&#41; &#123; 
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>"
&
#125; 
 
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..

Predicador

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&#40;"select id, nombre, Descr from ".$prefix."_partidas_nacimiento_cat where id > 1 order by id", $dbi&#41;; 
  
while &#40;list&#40;$numero, $categoria, $descr&#41; = mysql_fetch_array&#40;$cate, MYSQL_NUM&#41;&#41; &#123; 
    
echo "<option value=\"$numero\" label=\"$descr\">$numero - $categoria</option>"
  &
#125; 
?>

</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
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen

gemisu

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..?

Predicador

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.
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen

gemisu

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

gemisu

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  ???

Predicador

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.
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen