@Hellows

Возможно ли исправить?

Есть страничка index.php. На этой страничке есть таблица, которая выводит все данные. Над этой таблицей я сделал форму, которая позволит делать выборку из таблицы и отображать результат. В саму форму я добавил файл index2.php, чтобы считывался запрос с него, потому что не получается вывести результат именно на index.php.
Если же я помещу код выборки из файла index2.php в файл index.php, то результат, который мне нужно получить будет свободно висеть на странице, хотя этот результат должен появиться ПОСЛЕ того как я нажму на значение в select.
Мне надо получить результат на index.php, но!!! чтобы при выборе значений формировался запрос типа /index.php?sort=AMD и без перехода на index2.php.
Возьмите любой сайт, где есть выборка и там будет типа:
/moloko.php, а когда будет выборка, то /moloko.php?sort=selyanskoe и таблица останется той же, но с нашей выборкой.
Не обращайте внимания на кучу echo. Это я потом уберу:

index.php
<script src="jquery.js"></script>
  
<?php
 
//ВЫВОД ТАБЛИЦЫ
     
      $query_get        = ("SELECT * FROM table1 ");
      $result_get        = mysql_query($query_get) or die(mysql_error()); 
      while($row_get  = mysql_fetch_assoc($result_get)){  $arr_get[] = $row_get; }
 
//ВЫВОД СПИСКА В SELECT
 
      $query = 'SELECT distinct(Proizv) FROM table1 WHERE Proizv <> "" ORDER BY Proizv ASC';
      $manufact = mysql_query ($query) or die(mysql_error());
  
        echo "<form action='/index2.php' method='post'  id='myform' >"; 
          echo "<div class='select'>";
            echo "<select id='maker' name ='maker'>";
              echo '<option value="">-- Производитель --</option>';
                  while ($line = mysql_fetch_array($manufact)){
              echo '<option value="'.$line['Proizv'].'">'.$line['Proizv'].'</option>';}
            echo "</select>";
          echo "</div>";       
        echo "</form>";
 
      if (isset($arr_get)) {
            echo "<table>";
               echo "<thead>";
                echo "<tr>";
                echo "<th>ID</th>";                                                                        
                echo "<th>Модель</th>";
                echo "<th>Цена</th>"; 
                echo "</tr>";
                echo "</thead>";    
 
                foreach ($arr_get as $value) {
                    $ID                  = $value['ID'];
                    $Price               = $value['Price'];
                    $Available          = $value ['Available'];   
                    $Model              = $value['Model'];                                                     
                    $Article             = $value['Article'];
                    $Proizv             = $value['Proizv'];
 
                    echo "<tr>";
                      echo "<td>".$ID."</td>";
                      echo "<td>".$Proizv."</td>";        
                      echo "<td>".$Price."</td>";                   
                    echo "</tr>";
                  };
          echo "</table>"; 
        };
 
?>
 
<script type="text/javascript">
$(function(){
  $("#maker").change(function(){
    $("#myform").submit();
  });
});
</script>

index2.php
<script src="jquery.js"></script> 
<?php
 
//ВЫВОД СПИСКА 
 
      $query = 'SELECT distinct(Proizv) FROM Processors WHERE Proizv <> "" ORDER BY Proizv ASC';
      $manufact = mysql_query ($query) or die(mysql_error());
 
              echo "<form action='/index2.php' method='post'  id='myform' >";
                echo "<div>";
                    echo "<select id='maker' name ='maker'>";
                    echo '<option value="">-- Производитель --</option>';
                      while ($line = mysql_fetch_array($manufact)){
                    echo '<option value="'.$line['Proizv'].'">'.$line['Proizv'].'</option>';}
                    echo "</select>";
                echo "</div>";
              echo "</form>";
 
//ПРИ ВЫБОРЕ ЗНАЧЕНИЯ 
      if(isset($_POST['maker'])){
        $select = $_POST['maker'];
        $fam = "SELECT Model FROM table1 WHERE Proizv ='".mysql_real_escape_string($_POST['maker'])."'";
        $fam2 = mysql_query($fam) or die(mysql_error());
 
//ВЫВОД ТАБЛИЦЫ ПРИ ВЫБРАННОМ ЗНАЧЕНИИ В SELECT'e РИСУЕМ ТАБЛИЦУ
        
           $query_get1        = "SELECT * FROM table1 WHERE Proizv ='".mysql_real_escape_string($_POST['maker'])."'";
           $result_get1        = mysql_query($query_get1) or die(mysql_error());
            while($row_get1   = mysql_fetch_assoc($result_get1)){  $arr_get1[] = $row_get1; }
 
            echo "<table>";
               echo "<thead>";
                echo "<tr>";
                echo "<th>ID</th>";                                                                        
                echo "<th>Модель</th>";
                echo "<th>Цена</th>"; 
                echo "</tr>";
                echo "</thead>";    
 
                foreach ($arr_get as $value) {
                    $ID                  = $value['ID'];
                    $Price               = $value['Price'];
                    $Available          = $value ['Available'];   
                    $Model              = $value['Model'];                                                     
                    $Article             = $value['Article'];
                    $Proizv             = $value['Proizv'];
 
                    echo "<tr>";
                      echo "<td>".$ID."</td>";
                      echo "<td>".$Proizv."</td>";        
                      echo "<td>".$Price."</td>";                   
                    echo "</tr>";
                  };
          echo "</table>"; 
       };
?>
<script type="text/javascript">
$(function(){
  $("#maker").change(function(){
    $("#myform").submit();
  });
});
</script>

8cd5485d7d3045f4a92497b5200c0dfe.png
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
охтыжёб...
Парень, заклинаю тебя, пока не поздно, изучи MVC + PSR + не используй deprecated функции mysql_*.

Конкретно по вопросу: можешь сделать проверку входных параметров, если каких-то не хватает - редиректить на основную страницу.

Возьмите любой сайт, где есть выборка и там будет типа

Дело говоришь, посмотри любой фреймворк, реализующий это)) не обязательно эл. магазин, вывод таблиц есть практически всюду, не смотри CodeIgniter - это говно мамонта, которое приучает к ущербным практикам практикам
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы