Foros del Web » Programando para Internet » PHP »

Como crear un nombre de imput en secuencia?

Estas en el tema de Como crear un nombre de imput en secuencia? en el foro de PHP en Foros del Web. Hola! Espero que alguien pueda ayudarme, estoy haciendo un php para poder leer y luego modificar un xml. Lo que me hace falta saber es ...
  #1 (permalink)  
Antiguo 23/05/2009, 17:23
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 7 meses
Puntos: 1
Como crear un nombre de imput en secuencia?

Hola!
Espero que alguien pueda ayudarme, estoy haciendo un php para poder leer y luego modificar un xml.
Lo que me hace falta saber es como cambiar el nombre del input automaticamente de acuerdo a la cantidad de lineas que tenga el xml.
Nose si se entiende cual es mi pregunta asi que paso a poner lo que tengo.

notas.xml
Código PHP:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<content>
    <featured>
        <title>1231</title>
        <copy>Texto 1.</copy>
        <image>fotos/1231.JPG</image>
        <link></link>
    </featured>
    <featured>
        <title>1302</title>
        <copy>Texto 2.</copy>
        <image>fotos/1302.JPG</image>
        <link></link>
    </featured>
    <featured>
        <title>1024</title>
                <copy>Texto 3.</copy>
        <image>fotos/1024.JPG</image>
        <link></link>
    </featured>
    <featured>
        <title>802</title>
                <copy>Texto 4.</copy>
        <image>fotos/802.JPG</image>
        <link></link>
    </featured>
    <featured>
        <title>1423</title>
                <copy>Texto 5.</copy>
        <image>fotos/1423.JPG</image>
        <link></link>
    </featured>
    <featured>
        <title>1214</title>
                <copy>Texto 6.</copy>
        <image>fotos/1214.JPG</image>
        <link></link>
    </featured>
</content>
Y este sería el php que lo lee:

Código PHP:
<?php 
$xmlstr 
file_get_contents'notas.xml' );   
$content = new SimpleXMLElement$xmlstr );   
$c2 $content->$featured->title[0];

echo 
'<table>';   
echo 
'<tr>';   
echo 
'<th>Codigo</th><th>Texto</th>  
       <th>Direccion</th><th>-</th>'
;   
echo 
'</tr>';   
foreach( 
$content->featured as $featured ) {   
    echo 
'<tr>';   
    echo 
'<td><input type="text" name="nombre1" VALUE="' $featured->title  '"  size="10"></td>';   
    echo 
'<td>' $featured->copy '</td>';   
    echo 
'<td>' $featured->image '</td>';   
    echo 
'<td>' $featured->link '</td>';   
    echo 
'</tr>';   
}   
echo 
'</table>';  

?>
Lo que quiero lograr es que en el mobre de la input (name="nombre1") , automáticamente me cambien el nombre1, por nombre2, nombre3, asi en adelante de acuerdo a la cantidad de items que tenga el xml.
Si alguien me puede dar una mano.
Muchas gracias!

Última edición por AJVEvoluzione; 23/05/2009 a las 17:24 Razón: Error en el codigo
  #2 (permalink)  
Antiguo 23/05/2009, 17:29
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Como crear un nombre de imput en secuencia?

crea un contador antes del foreach para que ese le cambie el nombre a tu input, algo asi:

Código PHP:
<?php 
$xmlstr 
file_get_contents'notas.xml' );   
$content = new SimpleXMLElement$xmlstr );   
$c2 $content->$featured->title[0];

echo 
'<table>';   
echo 
'<tr>';   
echo 
'<th>Codigo</th><th>Texto</th>  
       <th>Direccion</th><th>-</th>'
;   
echo 
'</tr>';
$cont=1;
foreach( 
$content->featured as $featured ) {   
    echo 
'<tr>';   
    echo 
'<td><input type="text" name="nombre'.$cont.'" VALUE="' $featured->title  '"  size="10"></td>';   
    echo 
'<td>' $featured->copy '</td>';   
    echo 
'<td>' $featured->image '</td>';   
    echo 
'<td>' $featured->link '</td>';   
    echo 
'</tr>';   
}   
echo 
'</table>';  

?>
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 23/05/2009, 17:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como crear un nombre de imput en secuencia?

usar ciclos es innecesario... la forma mas valida, legal y estándar es usar name del tipo array()

así, en el script que recibes tratas todo como un array() que es mas fácil... que recrear los names con un numero...

en el HTML...
Código HTML:
<input name="title[]"/>
<input name="image[]"/>
<input name="link[]"/> 
y tu PHP
Código PHP:
var_dump($_POST); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 23/05/2009, 17:45
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Como crear un nombre de imput en secuencia?

By_George:
Me coloca siempre el numero 1 tal cual como lo hiciste vos, cómo hago para que me aumente uno?
  #5 (permalink)  
Antiguo 23/05/2009, 17:50
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Como crear un nombre de imput en secuencia?

aah es que falta incrementar el contador, hazlo antes de cerrar el foreach asi:

echo '<td>' . $featured->link . '</td>';
echo '</tr>';
$cont++;
}

pero como lo dijo pateketrueke es mejor usarlo como array, asi como previamente el lo explico.
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #6 (permalink)  
Antiguo 23/05/2009, 18:06
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Como crear un nombre de imput en secuencia?

Excelente! era justo lo que estaba buscando, gracias!
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 16:04.