Foros del Web » Programando para Internet » PHP »

Forma correcta de Concatenar

Estas en el tema de Forma correcta de Concatenar en el foro de PHP en Foros del Web. buenas me pueden decir como puedo concatenar la condion dentro de la siguiente cadena de concatenacion Código PHP: $ComicionList  .=  '<tr style="background-color:' . $clscolor . '"> ...
  #1 (permalink)  
Antiguo 23/02/2010, 11:44
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 6 meses
Puntos: 2
Pregunta Forma correcta de Concatenar

buenas me pueden decir como puedo concatenar la condion dentro de la siguiente cadena de concatenacion

Código PHP:
$ComicionList .= '<tr style="background-color:'.$clscolor.'">
                                        <td>'
.$ArrSol["Folio Estatal"].'</td>
                                        <td>'
.$ArrSol["nombre"].'</td>
                                        <td>'
.$ArrSol["Componente"].'</td>
                                        <td>'
.$ArrSol["Concepto"].'</td>
                                        <td align="right"><span style="float:left;">$</span>'
.number_format($ArrSol["monto_solicitado"]).'</td>
                                        <td align="right"><span style="float:left;">$</span>'
.number_format($ArrSol["monto_comprometido"]).'</td>
                                        <td>'
.$ArrSol["dictame_suri"].'</td>
                                        .'
.if ($ArrSol["ORGANIZACION"] == "" || $ArrSol["ORGANIZACION"] == null){
                                            <
td>'.$ArrSol["solicitante"].'</td>}
                                        else{
                                            <
td>'.$ArrSol["ORGANIZACION"].'<td/>}.'.
                                        <td>'
.$ArrSol["autoriza"].'</td>
                                        <td align="center">'
.$ArrSol["PRIORIDAD"].'</td>
                                        <td><form id="detallecomicion" action="comision/status_comicion.php" method="post">
                                                <input type="hidden" value="'
.$ArrSol["Folio Estatal"].'" name="folios"/>
                                                <input type="hidden" value="'
.$ArrSol["Concepto"].'" name="concepto"/>
                                                <input type="button" onclick="formSubmit();" name="btnElegir" value="Elegir" class="boton" />
                                            </form></td>
                                      </tr>'

porfa, ya que me marca el siguiente error
Parse error: syntax error, unexpected T_IF in /var/www/html/csdr/_cls/cls_Comicion.php on line 30
la linea 30 es donde esta el if o comiensa.

selos agradeseria.......
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores

Última edición por Esfinge02; 23/02/2010 a las 11:46 Razón: falto explicar
  #2 (permalink)  
Antiguo 23/02/2010, 11:49
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Forma correcta de Concatenar

Si, como no

Código PHP:
<tr style="background-color:<?php echo $clscolor?>;">
                                        <td><?php echo $ArrSol["Folio Estatal"]; ?></td>
                                        <td><?php echo $ArrSol["nombre"]; ?></td>
                                        <td><?php echo $ArrSol["Componente"]; ?></td>
# y asi sucesivamente...
En la parte del condicional, abris php, pones la condicion y despues volves a cerrar...
Evitate todos los echo que puedas
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 23/02/2010, 12:33
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 6 meses
Puntos: 2
Pregunta Respuesta: Forma correcta de Concatenar

idea.....

Código PHP:
$ComicionList .= '<tr style="background-color:'.$clscolor.'">
                                        <td>'.$ArrSol["Folio Estatal"].'</td>
                                        <td>'.$ArrSol["nombre"].'</td>
                                        <td>'.$ArrSol["Componente"].'</td>
                                        <td>'.$ArrSol["Concepto"].'</td>
                                        <td align="right"><span style="float:left;">$</span>'.number_format($ArrSol["monto_solicitado"]).'</td>
                                        <td align="right"><span style="float:left;">$</span>'.number_format($ArrSol["monto_comprometido"]).'</td>
                                        <td>'.$ArrSol["dictame_suri"].'</td>
                                        <?php 
                                            
if ($ArrSol["ORGANIZACION"] == "" || $ArrSol["ORGANIZACION"] == null){
                                                echo 
"<td>'.$ArrSol["solicitante"].'</td>";
                                            }
                                            else{
                                                echo 
"<td>'.$ArrSol["ORGANIZACION"].'<td/>";
                                            }
                                        
?>
                                        <td>'.$ArrSol["autoriza"].'</td>
                                        <td align="center">'.$ArrSol["PRIORIDAD"].'</td>
                                        <td><form id="detallecomicion" action="comision/status_comicion.php" method="post">
                                                <input type="hidden" value="'.$ArrSol["Folio Estatal"].'" name="folios"/>
                                                <input type="hidden" value="'.$ArrSol["Concepto"].'" name="concepto"/>
                                                <input type="button" onclick="formSubmit();" name="btnElegir" value="Elegir" class="boton" />
                                            </form></td>
                                      </tr>';
al final quedo asi, el proplaba radica que al parese tomoa el else como si fuera parte de la concatenacion, en el if, alguna idea....
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores
  #4 (permalink)  
Antiguo 23/02/2010, 12:45
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Forma correcta de Concatenar

Cre q estás cerrando mal las comillas, cito:
Cita:
if ($ArrSol["ORGANIZACION"] == "" || $ArrSol["ORGANIZACION"] == null){
echo "<td>'.$ArrSol["solicitante"].'</td>";
}
else{
echo "<td>'.$ArrSol["ORGANIZACION"].'<td/>";
}
Fíjate en la primera "<td>', abres con doble comilla, cierras con simple. Arréglalo y vuelve a probar a ver q tal te va
  #5 (permalink)  
Antiguo 23/02/2010, 12:51
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Forma correcta de Concatenar

pues prueba asi de este modo el codigo estaria mas aptomizado y es mas rapido que codigo html dentro de un echo:

Código PHP:
<?php

if(isset($ComicionList))

?>
<tr style="background-color:"<?php echo $clscolor;?>">
                                        <td><?php echo $ArrSol["Folio Estatal"]?></td>
                                        <td><?php echo $ArrSol["nombre"]?></td>
                                        <td><?php echo $ArrSol["Componente"]?></td>
                                        <td><?php echo $ArrSol["Concepto"]?></td>
                                        <td align="right"><span style="float:left;">$</span><?php echo number_format($ArrSol["monto_solicitado"])?></td>
<td align="right"><span style="float:left;">$</span><?php echo number_format($ArrSol["monto_comprometido"])?></td>
                                        <td><?php echo $ArrSol["dictame_suri"]?></td>
 <?php 
 
if ($ArrSol["ORGANIZACION"] == "" || $ArrSol["ORGANIZACION"] == null){
 
?><td><?php echo $ArrSol["solicitante"]?></td>
<?php    
  
}  
  else
  {
?>
<td><?php echo $ArrSol["ORGANIZACION"]?><td/>
<?php
 
}
?>
<td><?php echo $ArrSol["autoriza"]?></td>
 <td align="center"><?php echo $ArrSol["PRIORIDAD"]?></td>
 <td><form id="detallecomicion" action="comision/status_comicion.php" method="post">
                                                <input type="hidden" value="'.$ArrSol["Folio Estatal"].'" name="folios"/>
                                                <input type="hidden" value="'.$ArrSol["Concepto"].'" name="concepto"/>
                                                <input type="button" onclick="formSubmit();" name="btnElegir" value="Elegir" class="boton" />
                                            </form></td>
                                      </tr>
<?php 
}
?>
de todos modos debes agregar seguridad a tus variables utiliza

$algo = htmlentities($ArrSol["Folio Estatal"],ENT_QUOTES);

en tu codigo el problema es el mal uso de las comillas simples y dobles, debes escapar las comillas dobles con \ cuando sea necesario....

saludos

Última edición por zerpico_01; 23/02/2010 a las 13:59
  #6 (permalink)  
Antiguo 23/02/2010, 12:52
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Forma correcta de Concatenar

si ago eso me arroja un error de sintaxis el cual me marca '<'
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores
  #7 (permalink)  
Antiguo 23/02/2010, 13:00
Avatar de pepeverastegui  
Fecha de Ingreso: septiembre-2008
Ubicación: Pedernales, Michoacan
Mensajes: 82
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Forma correcta de Concatenar

el problema radica en tu manera de abrir ' o " debes de verificar bien eso, ese tambien era mi talon de aquiles pero ya he aprendido a probar que funcione bien a la primera

Código:
$ComicionList .= "<tr style='background-color:$clscolor'>
                                        <td>$ArrSol[\"Folio Estatal\"]</td>
                                        <td>$ArrSol[\"nombre\"]</td>
                                        <td>$ArrSol[\"Componente\"]</td>
                                        <td>$ArrSol[\"Concepto\"]</td>
                                        <td align='right'><span style='float:left;'> $</span> ".number_format($ArrSol["monto_solicitado"])."</td>
                                        <td align='right'><span style='float:left;'>$</span> ".number_format($ArrSol["monto_comprometido"])."</td>
                                        <td>$ArrSol[\"dictame_suri\"]</td>";

if($ArrSol["ORGANIZACION"] == "" || $ArrSol["ORGANIZACION"] == null)
{
   $ComicionList .= "<td>$ArrSol[\"solicitante\"]</td>";
}
else
{
   $ComicionList .= "<td>$ArrSol[\"ORGANIZACION\"]<td/>";
}

$ComicionList .= "<td>$ArrSol[\"autoriza\"]</td>
                            <td align='center'>$ArrSol[\"PRIORIDAD\"]</td>
                            <td><form id='detallecomicion' action='comision/status_comicion.php' method='post'>
                            <input type='hidden' value='$ArrSol[\"Folio Estatal\"]' name='folios'/>
                            <input type='hidden' value='$ArrSol[\"Concepto\"]' name='concepto'/>
                            <input type='button' onclick='formSubmit();' name='btnElegir' value='Elegir' class='boton' />
                                            </form></td>
                                      </tr>";
listo creo asi va cualquier cosa ps un mp o como veas
__________________
Ing. Jesus Verastegui
http://www.micharanga.com.mx
http://pepeverastegui.blogspot.com

Última edición por pepeverastegui; 23/02/2010 a las 13:02 Razón: me falto cerrar unas comillas jajaja
  #8 (permalink)  
Antiguo 23/02/2010, 13:01
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Forma correcta de Concatenar

He corrido el código de zerpico y me va perfecto. ¿En q linea te marca el error de sintaxis?
  #9 (permalink)  
Antiguo 23/02/2010, 13:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Forma correcta de Concatenar

El problema en el codigo original es que tratas de concatenar lo que esta dentro de un if y eso no es posible, porque se trata de una estructura de control y no de una funcion que devuelve algun valor.

Esto esta mal:

$cadena = "Un texto aqui " . if(condicion) { "algo" } else { "otra cosa" } . " mas texto concatenado ";

En todo caso, puedes hacer uso de una asignacion ternaria:

$cadena = "Un texto aqui" . (condicion) ? "algo" : "otra cosa" . " mas texto concatenado ";

Para mas info sobre operadores: http://php.net/manual/en/language.op...comparison.php
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 23/02/2010, 13:57
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Forma correcta de Concatenar

Cita:
Iniciado por Esfinge02 Ver Mensaje
si ago eso me arroja un error de sintaxis el cual me marca '<'
puede que halla algun comilla simple suelta mira el codigo, lo hice a la apurada para que te des una idea.... ...

si esta mal en ---> <tr style="background-color:'<?php echo $clscolor?>">

ahi quito la comilla simple delante <?php.....

saludos!!

codigo editado.!! pruebalo ahora....

con respecto a lo que te dice -->Triby pues si tiene razon... en parte!
deberias usar para tu caso algo asi:

switch ($algo){
case "valor uno";
echo "<span>codigo </span>";
break;
case "valor dos";
echo "<span>codigo dos</span>";
break;
}

queda mas bonito

saludos!

Última edición por zerpico_01; 23/02/2010 a las 14:04

Etiquetas: concatenar, formulario
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 17:29.