lo que pasa es que no lee estas pasando un arreglo a foreach
prueba esto haber si se soluciona
Código PHP:
<?php
$conec=mysql_connect("localhost","root","yoyoyo");
$b=$_POST['caja1'];
$result=mysql_db_query("path","select * from imagenes where nombre LIKE '%{$b}%' ",$conec);
//Mostramos los registros
$contador=0;
while ($row=mysql_fetch_assoc($result))
{
echo '<img src="'.$row['ruta'].'">';
echo '</img>';
$ids[$contador]=$row['nombre'];
$contador++;
}
mysql_free_result($result);
mysql_close($conec);
echo "<FORM method='post' action='reportepdf.php'>";
echo "<input type='submit' name='submit' value='Obtener Pdf'>";
foreach ($ids as $idimg)
{
echo "<input type='text' name='ruta[]' value='$idimg' />"; //aca genero tantos hidden como imagenes haya
}
echo "</FORM>";
?>