We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7708
    • 9 Posts
    Мне нужно организовать поиск по разным параметрам в том числе «чекбоксам»

    Но сейчас я получаю ошибку

    SELECT contentid FROM modx_site_tmplvar_contentvalues WHERE value = Русская

    сам вызов реализован так :
    <?php
    if ( isset($_POST['go']) ) 
    {
    $par = $_POST['par'];
    			
    $sql = $modx->db->select("contentid", "modx_site_tmplvar_contentvalues", "value = $par", "", "");
    while( $row = $modx->db->getRow( $sql )) 
    	{ $output .= '<p> Doc_ID: <a href=[~' .$row['contentid']. '~]>'.$row['contentid'].'</a></p>'; } 
    echo $output;
    }
    ?>
    

    при этом форма с параметрами у меня создаётся динамически:
    <?php	//	tvset	//
    	
    $txt = $modx->getTemplateVar('par');
    $mass = explode ("||", $txt['elements']);
     
    foreach ($mass as $key => $value) { 
    	$out_par .= "<option value=\"$value\">$value</option>"; } 
    	$modx -> setPlaceholder ('out_par',$out_par) ;	
    
    ?>
    	--- чанк ---
      <form method="POST" action="">
    <table style="width:260px;">
        <tr valign="top">
          <td align="right">Тип</td>
          <td>
              <select name="par">
              [+out_par+]
              </select>
          </td>
        </tr>
    </table>
      <br>
      <input type="submit" name="go" id="go" value="Поиск">
      </form>
    

    Запрос на селект пробовал формировать по разному; комбинируя кавычки и т.д.
    $sql = ’SELECT contentid FROM `modx_site_tmplvar_contentvalues` WHERE `value`=`’.$par.’`’; $modx->db->query($sql);
      • 18044
      • 10 Posts
      Вместо
      $sql = $modx->db->select("contentid", "modx_site_tmplvar_contentvalues", "value = $par", "", "");
      while( $row = $modx->db->getRow( $sql )) 
      	{ $output .= '<p> Doc_ID: <a href=[~' .$row['contentid']. '~]>'.$row['contentid'].'</a></p>'; }
      

      напиши что-то типа:
      $result = "SELECT `contentid` FROM `modx_site_tmplvar_contentvalues` WHERE `value` = '$par'";
      $sql = $modx->db->query($result);
      while ($myrow = mysql_fetch_row($sql)) {
      	$output .= "<p>Doc_ID: <a href=\"$myrow[0]\">$myrow[0]</a></p>\n";
      }
      
      

      Но вообще следует разделять логику от HTML - т.е. в коде сниппета не должно быть ни одной строки HTML, ни одного его тэга.
        Допустим так, сюда туда,
        Будет так ни так, ни сяк.
        Ну не так, чтоб уж туды,
        Запроси сюды.
        Как бы так, чтобы не сяк,
        Эдак, водак, мяк и шмяк,
        Залепить сюда вот-так,
        Получается - Косяк.