Quizas me exprese mal (cansancio) ... perdon
No necesito los 2 valores,... y de hecho el valor pasa bien tanto con las cats como con las subcats
El tema es que una vez pasa el valor este se recoge según sea el name del elemento select si es catid pues todos los valores tanto las cats como las subcats son catid y viceversa
Necesito algo para determinar que el valor que pasa es catid o es subcatid ya que quiero que las cats se puedan seleccionar y ademas con optgroup no podria, osea solo podria realizar busquedas en las subcats,... de hecho con optgroup lo tengo ahora funcionando correctamente lo que pasa es que quiero que se pueda seleccionar la cat para realizar una búsqueda mas amplia
He probado realmente con todo lo que se isset, empty if, aunque no me gusta probé a manejar 2 formularios en capas con un onClick diferente en cada option pero onlick no chuta en ie
... en fin sigo con el temita y gracias
Solucionado... !
Me diste la idea con explode
Le añado delante del valor catid|o| o bien subcatid|o| ,... despues he metido un pagina intermedia que procesa este variable con explode y defino la url final
Formulario:
Código PHP:
<form name="formulario2" action="procesa_search.php" method="get" onSubmit='return validar2(this)'>
<strong><?php echo $lang['SEARCH_TITLE']; ?></strong><br>
<input type="hidden" name="cityid" value="<?php echo $xcityid; ?>">
<input type="hidden" name="lang" value="<?php echo $xlang; ?>">
<input name="search" type="text" value="<?php echo $_GET['search']; ?>" size="37" maxlength="50">
<select name="nombre">
<option value="catid|o|0" <?php if(!$_GET['subcatid'] or !$_GET['catid']) echo "selected"; ?>><?php echo $lang['ALL_CATEGORIES']; ?></option>
<?php
$sql = "SELECT catid, catname
FROM $t_cats
ORDER BY catname";
$res = mysql_query($sql);
while ($row=mysql_fetch_array($res))
{
echo "<option value=\"catid|o|$row[catid]\"";
if ($_GET['catid'] == $row['catid'])
{
echo " selected";
$cat = $row['catname'];
}
echo ">$row[catname]</option>";
$sql = "SELECT subcatid, subcatname
FROM $t_subcats
WHERE catid = $row[catid]
ORDER BY subcatname";
$ress = mysql_query($sql);
if (mysql_num_rows($ress))
{
while ($s = mysql_fetch_array($ress))
{
echo "<option value=\"subcatid|o|$s[subcatid]\"";
if ($_GET['subcatid'] == $s['subcatid'])
{
echo " selected";
$subcat = $s['subcatname'];
}
echo ">· $s[subcatname] </option>";
}
}
}
?>
</select>
<input type="hidden" name="view" value="ads">
<input type="submit" value="<?php echo $lang['SEARCH']; ?>" name="Buscar">
<br>
<?php echo $lang['ADS_WITH_IMAGES']; ?>: <input name="images_only" type="checkbox" value="1" <?php if ($_GET['images_only']==1){echo 'checked';}?>>
<?php echo $lang['GLOBAL_SEARCHS']; ?>: <input name="global" type="checkbox" value="yes" <?php if ($_GET['global']=="yes"){echo 'checked';}?>>
</form>
Pagina procesa_search.php
Código PHP:
<?php
$cadena_nombre = $_GET['nombre'];
$salida = explode("|o|", $cadena_nombre);
$nombre = $salida[0];
$valor = $salida[1];
if ($_GET['images_only']==1){
header("Location: http://www.MIURL.com/?cityid=$xcityid&search=$_GET[search]&$nombre=$valor&view=ads&Buscar=Buscar&images_only=1");
}
if ($_GET['global']=="yes"){
header("Location: http://www.MIURL.com/?cityid=$xcityid&search=$_GET[search]&$nombre=$valor&view=ads&Buscar=Buscar&global=yes");
}
if ($_GET['images_only']==1 && $_GET['global']=="yes"){
header("Location: http://www.MIURL.com/?cityid=$xcityid&search=$_GET[search]&$nombre=$valor&view=ads&Buscar=Buscar&images_only=1&global=yes");
}
if (!$_GET['images_only'] && !$_GET['global']){
header("Location: http://www.MIURL.com/?cityid=$xcityid&search=$_GET[search]&$nombre=$valor&view=ads&Buscar=Buscar");
}
?>
Muchas gracias punknomas