etiquetas - remove html tags php
si el bloque dentro de la declaraciĆ³n de eco? (4)
En aras de la legibilidad debería ser algo así como
<?php
$countries = $myaddress->get_countries();
foreach($countries as $value) {
$selected ='''';
if($value==''United States'') $selected =''selected="selected"'';
echo ''<option value="''.$value.''"''.$selected.''>''.$value.''</option>'';
}
?>
deseo de llenar TODO en una sola línea es un fallecimiento, hombre. Escribe distintamente
Pero hay otra manera, una mejor. No hay necesidad de usar eco en absoluto. Aprende a usar plantillas. Prepare sus datos primero y muéstrelos solo listos para ese momento.
Parte de la lógica de negocios:
$countries = $myaddress->get_countries();
$selected_country = 1;
Parte de la plantilla:
<? foreach($countries as $row): ?>
<option value="<?=$row[''id'']?>"<? if ($row[''id'']==$current_country):> "selected"><? endif ?>
<?=$row[''name'']?>
</option>
<? endforeach ?>
Sospecho que no está permitido porque recibo el error "Parse error: error de sintaxis, T_IF inesperado en ...". Pero no pude encontrar una manera de lograr mi objetivo. Aquí está mi código:
<?php
$countries = $myaddress->get_countries();
foreach($countries as $value){
echo ''<option value="''.$value.''"''.if($value==''United States'') echo ''selected="selected"'';.''>''.$value.''</option>'';
}
?>
Lo que hace es mostrar una lista de países en un elemento de selección y establece Estados Unidos como el valor predeterminado. No trabajo tristemente ...
Querrá usar el un operador ternary que actúa como una declaración abreviada IF / Else:
echo ''<option value="''.$value.''" ''.(($value==''United States'')?''selected="selected"'':"").''>''.$value.''</option>'';
Siempre puede usar la sintaxis ( <condition> ? <value if true> : <value if false> )
(se llama operador ternario , gracias a Mark por recordarme :) ).
Si <condition>
es verdadera, la declaración se evaluaría como <value if true>
. Si no, se evaluaría como <value if false>
Por ejemplo:
$fourteen = 14;
$twelve = 12;
echo "Fourteen is ".($fourteen > $twelve ? "more than" : "not more than")." twelve";
Esto es lo mismo que:
$fourteen = 14;
$twelve = 12;
if($fourteen > 12) {
echo "Fourteen is more than twelve";
}else{
echo "Fourteen is not more than twelve";
}
Use un operador ternario :
echo ''<option value="''.$value.''"''.($value==''United States'' ? ''selected="selected"'' : '''').''>''.$value.''</option>'';
Y mientras lo hace, podría usar printf
para hacer que su código sea más legible / manejable:
printf(''<option value="%s" %s>%s</option>'',
$value,
$value == ''United States'' ? ''selected="selected"'' : ''''
$value);