ФорумПрограммированиеPHP для идиотов → Помогите с пёсиком по select'ам

Помогите с пёсиком по select'ам

  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 11:15, спустя 8 минут 53 секунды

    У меня динамические селекты выбирают из БД значения. По нажатию кнопки передаются выбранные значения из этих селектов в SQL-запрос. Подскажите как правильно передавать эти значения. В смысле как правильно забирать значения для передачи и обращаться к ним после принятия
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 23 сентября 2009 г. 18:37, спустя 7 часов 21 минуту 53 секунды

    постом
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 24 сентября 2009 г. 10:12, спустя 15 часов 35 минут 37 секунд


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Тег OPTION</title>
    </head>
    <body>
    <PRE>
    POST_DATA<br />
    <?print_r($_POST)?>
    </PRE>
    <form method="post">
    <p><select size="7" name="hero[]" multiple="multiple">
    <option disabled>Выберите героя</option>
    <option value="cheb" selected>Чебурашка</option>
    <option value="gena">Крокодил Гена</option>
    <option value="shap">Шапокляк</option>
    <option value="kris">Крыса Лариса</option>
    </select></p>
    <p><input type="submit" value="Отправить"></p>
    </form>

    </body>
    </html>

    Если народ не отвечает … может плохо вопрос задан?
    Спустя 40 сек.
    http://htmlbook.ru/html/option.html
  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 11:06, спустя 53 минуты 37 секунд

    AndryG, у меня 6 динамических select'ов и они все задают параметры SQL-запросу. Как передавать я уже понял, но как дальше обратиться к этим данным для последующей передачи в SQL-запрос я не понял, что-то типа $_POST('hero['.$i.']')?

    http://htmlbook.ru/html/option.html

    спасибо за ссылку!
  • LIFF

    Сообщения: 188 Репутация: N Группа: Адекваты

    Spritz 24 сентября 2009 г. 12:21, спустя 1 час 15 минут 35 секунд


    Подскажите как правильно передавать эти значения. В смысле как правильно забирать значения для передачи и обращаться к ним после принятия


    if(isset($_POST['hero'])){
     $hero = $_POST['hero'];

     // а дальше как с обычным массивом


    }



  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 13:02, спустя 40 минут 57 секунд

    посмотрите я правильно пишу, видимо ничего не передаётся
    Код запрашиваемой страницы

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
     <title>Результаты поиска</title>
    </head>
    <body>
    <?php
    $db = mysql_connect ("localhost", "root", "");
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    mysql_select_db("cars",$db);

    /*require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");*/
    ?>
    <ul type="circle">
    <?php
    if(isset($_POST['brand']) AND isset($_POST['model']) AND isset($_POST['body']) AND
    isset($_POST['fuel']) AND isset($_POST['engine']) AND isset($_POST['color']) AND isset($_POST['price'])){
    $brand = $_POST['brand'];
    $model = $_POST['model'];
    $body = $_POST['body'];
    $fuel = $_POST['fuel'];
    $engine = $_POST['engine'];
    $color = $_POST['color'];
    $price = $_POST['price'];

    $sql = mysql_query ('SELECT * FROM t1 WHERE brand = "'.trim($brand["brand"]).'" AND
    model = "'.trim($model["model"]).'" AND
    body = "'.trim($body["body"]).'" AND
    fuel = "'.trim($fuel["fuel"]).'" AND
    engine = "'.trim($engine["engine"]).'" AND
    color = "'.trim($color["color"]).'" AND
    price = "'.trim($price["price"]).'"');
    if($sql) {
    $new_items = array();
    $new = mysql_fetch_array($sql);
    $new_items = $new['brand'];
    $new_items = $new['model'];
    $new_items = $new['body'];
    $new_items = $new['fuel'];
    $new_items = $new['engine'];
    $new_items = $new['color'];
    $new_items = $new['price'];
    echo '<li>'.$new_items['brand'].'</li>';
    } else {
    echo mysql_error();
    }
    }
    ?>
    </ul>

    </body>
    </html>

    Передаю данные post'ом в файл содержащий этот код, у всех селектов имя вида name="brand[]"
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 24 сентября 2009 г. 13:03, спустя 23 секунды

    а мужик то умный попался, до 14ой страницы не доходит!
    Сапожник без сапог
  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 13:10, спустя 7 минут 38 секунд

    phpdude, хватит меня абс…, я ещё начинающий чайник, лучше объясни. Если можешь конечно
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 24 сентября 2009 г. 13:15, спустя 4 минуты 16 секунд

    gvik, я то могу помочь, а вот подъебы вот такие "Если можешь конечно" ненавижу ..

    $brand = $_POST['brand'];
    $model = $_POST['model'];
    $body = $_POST['body'];
    $fuel = $_POST['fuel'];
    $engine = $_POST['engine'];

    "'.trim($model["model"]).'" AND
    body = "'.trim($body["body"]).'" AND
    fuel = "'.trim($fuel["fuel"]).'" AND
    engine = "'.trim($engine["engine"]).'" AND

    это пиздец, выбери чтото одно

    "'.trim($model).'" AND
    body = "'.trim($body).'" AND
    fuel = "'.trim($fuel).'" AND
    engine = "'.trim($engine).'" AND



    Сапожник без сапог
  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 13:23, спустя 8 минут 13 секунд


    а мужик то умный попался, до 14ой страницы не доходит!

    Я тоже ненавижу, когда ниже плинтуса
  • LIFF

    Сообщения: 188 Репутация: N Группа: Адекваты

    Spritz 24 сентября 2009 г. 13:34, спустя 11 минут 10 секунд

    gvik, код у тебя полный пиздец!!


    $brand = $_POST['brand']; //это норм

    //при передаче в запрос ты используешь
    $sql = mysql_query ("SELECT * FROM t1 WHERE brand = trim($brand['brand']) ") // тра-ла-ла

    // используй
     $brand[0];
    // вместо
    $brand['brand'];
     


    А вообще сделай
    var_dump($_POST['brand']) 


    и результат сюда выложи
  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 13:45, спустя 11 минут 6 секунд

    LIFF, вот результат
    <?php var_dump($_POST['brand']);?><br>
    <?php var_dump($_POST['model']);?><br>
    <?php var_dump($_POST['body']);?><br>
    <?php var_dump($_POST['fuel']);?><br>
    <?php var_dump($_POST['engine']);?><br>
    <?php var_dump($_POST['color']);?><br>
    <?php var_dump($_POST['price']);?><br>


    NULL 
    array(1) { [0]=> string(4) "Colt" }
    array(1) { [0]=> string(19) "хэтчбэк 3-х дверный" }
    array(1) { [0]=> string(6) "бензин" }
    array(1) { [0]=> string(4) "1.3i" }
    array(1) { [0]=> string(5) "синий" }
    array(1) { [0]=> string(5) "12970" }
  • LIFF

    Сообщения: 188 Репутация: N Группа: Адекваты

    Spritz 24 сентября 2009 г. 14:59, спустя 1 час 13 минут 44 секунды

    Ну так у тебя $_POST['brand']  равен null.
    Ищи где он потерялся!

  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2009 г. 16:39, спустя 1 час 39 минут 52 секунды

    Все select'ы кроме select'а "brand" появляются динамически, а он жёстко прописан.
  • gvik

    Сообщения: 137 Репутация: N Группа: Кто попало

    Spritz 1 октября 2009 г. 18:03, спустя 7 дней 1 час 24 минуты

    Помогие пожалуйста найти ошибку, $_POST['brand'] всё рано равен null.

    <form action="search.php" method="post" style="margin:0px; padding:0px "><table width="154"  border="0" cellspacing="0" cellpadding="0" align="center">
                      <?php
    $db = mysql_connect ("localhost", "root", "");
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    mysql_select_db("cars",$db);
    ?>
    <script src="JsHttpRequest.js"></script>

    <form>
    <input id="select1" type="hidden" />
    <input id="select2" type="hidden" />
    <input id="select3" type="hidden" />
    <input id="select4" type="hidden" />
    <input id="select5" type="hidden" />
    <input id="select6" type="hidden" />
    </form>

    <script>
    function doload(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result").innerHTML=req.responseText;}
    document.getElementById("select1").value = value;
    req.open(null,"select2.php",true);
    req.send({brand:value});
    }

    function doload1(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result1").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    document.getElementById("select2").value = value;
    req.open(null,"select3.php",true);
    req.send({brand:select1, model:value});
    }

    function doload2(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result2").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    var select2 = document.getElementById("select2").value;
    document.getElementById("select3").value = value;
    req.open(null,"select4.php",true);
    req.send({brand:select1, model:select2, body:value});
    }

    function doload3(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result3").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    var select2 = document.getElementById("select2").value;
    var select3 = document.getElementById("select3").value;
    document.getElementById("select4").value = value;
    req.open(null,"select5.php",true);
    req.send({brand:select1, model:select2, body:select3, fuel:value});
    }

    function doload4(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result4").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    var select2 = document.getElementById("select2").value;
    var select3 = document.getElementById("select3").value;
    var select4 = document.getElementById("select4").value;
    document.getElementById("select5").value = value;
    req.open(null,"select6.php",true);
    req.send({brand:select1, model:select2, body:select3, fuel:select4, engine:value});
    }

    function doload5(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result5").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    var select2 = document.getElementById("select2").value;
    var select3 = document.getElementById("select3").value;
    var select4 = document.getElementById("select4").value;
    var select5 = document.getElementById("select5").value;
    document.getElementById("select6").value = value;
    req.open(null,"select7.php",true);
    req.send({brand:select1, model:select2, body:select3, fuel:select4, engine:select5, color:value});
    }
    </script>

    <select name="brand[]" id="brand" onchange="doload(this.value);" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите марку–</option>
    <?php
    $sql = mysql_query ("SELECT DISTINCT brand FROM t1");
    while ($new_brand = mysql_fetch_array($sql))
    echo '<option value='.$new_brand['brand'].'>'.$new_brand['brand'].'</option>';
    ?>
    </select>
    <br>
    <div id="result">
    <select name="model[]" id="model" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите модель–</option>
    </select>
    </div>

    <div id="result1">
    <select name="body[]" id="body" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите тип кузова–</option>
    </select>
    </div>

    <div id="result2">
    <select name="fuel[]" id="fuel" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите тип топлива–</option>
    </select>
    </div>

    <div id="result3">
    <select name="engine[]" id="engine" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите тип двигателя–</option>
    </select>
    </div>

    <div id="result4">
    <select name="color[]" id="color" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите цвет–</option>
    </select>
    </div>

    <div id="result5">
    <select name="price[]" id="price" style="width:150px; height:18px; font-family:tahoma; font-size:11px; color:#757575 ">
    <option value="no_action">–Выберите цену–</option>
    </select>
    </div>
    <br>
    <tr align="center"><td align="center"><input type="submit" value="Найти"><?php //$_POST=0;?></td></tr>
                      <tr height="10"></tr>
                     </table></form>

    <?php 
    $db = mysql_connect ("localhost", "root", "");
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    mysql_select_db("cars",$db);
    ?>
    <?php var_dump($_POST['brand']);?><br>
    <?php var_dump($_POST['model']);?><br>
    <?php var_dump($_POST['body']);?><br>
    <?php var_dump($_POST['fuel']);?><br>
    <?php var_dump($_POST['engine']);?><br>
    <?php var_dump($_POST['color']);?><br>
    <?php var_dump($_POST['price']);?><br>
    <div class="main">
    <div class="title">
    <h2 class="wb11"><span class="upper"><b>Результаты поиска</b></span></h2>
    </div>
    <div class="box" style="background:#EEF1F2">


    <table class="used-results mods mtl8" cellspacing="0">
    <tr class="mod-header">
    <td class="header" width="185">
    <div class="tr-left fl"><b>Фото</b></div>
    </td>
    <td class="header" width="314">
    <div class="tr-left fl"><b>Модель</b> / комплектация</div>
    </td>
    <td class="header" width="120">
    <div class="tr-left fl"><b>Цена</b></div>
    </td>
    </tr>
    <?php
    if(isset($_POST['brand']) AND isset($_POST['model']) AND isset($_POST['body']) AND
    isset($_POST['fuel']) AND isset($_POST['engine']) AND isset($_POST['color']) OR isset($_POST['price'])){

    $model = $_POST['model'];
    $body = $_POST['body'];
    $fuel = $_POST['fuel'];
    $engine = $_POST['engine'];
    $color = $_POST['color'];

    $sql = mysql_query ('SELECT * FROM t1 WHERE model = "'.trim($model[0]).'" AND
    body = "'.trim($body[0]).'" AND
    fuel = "'.trim($fuel[0]).'" AND
    engine = "'.trim($engine[0]).'" AND
    color = "'.trim($color[0]).'"');
    if($sql) {
    while ($new = mysql_fetch_array($sql)) {

    echo '<tr>';
    echo '<td height="2" style="background:#EEF1F2">';
    echo'<div><a class="highslide" onclick="return hs.expand(this)" href="'.$new[7].'">';
    echo '<img title="'.$new[0].' '.$new[1].' '.$new[4].' '.$new[2].'" alt="Highslide JS" src="'.$new[8].'" width="171" height="107"/></a>';
    echo '<div class="highslide-caption">'.$new[0].' '.$new[1].' '.$new[4].' '.$new[3].' '.$new[5].' '.$new[2].' '.$new[6].'</div>';
    echo '</div>';
    echo '</td>';
    echo '<td height="2" style="background:#EEF1F2">';
    echo ' ';
    echo $new[0];
    echo ' ';
    echo $new[1];
    echo ' ';
    echo $new[4];
    echo ' ';
    echo $new[3];
    echo ' ';
    echo $new[5];
    echo ' ';
    echo $new[2];
    echo ' ';
    echo '</td>';
    echo '<td height="2" style="background:#EEF1F2">';
    echo $new[6];
    echo '</td>';
    echo '</tr>';
    }
    } else {
    echo mysql_error();
    }
    }


Пожалуйста, авторизуйтесь, чтобы написать комментарий!