Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача параметра из <select> в SQL-запрос 
:(
    Опции темы
igramnet
Дата 7.8.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Вот сделал я но не всё получилось, а именно, переменные из файла ajax_groups.php не пересылаются обратно в newlab.php.  Вот коды

ajax_groups.php
Код

<?php

if ($_GET[s]=="") exit;

?>              <form name="labDets2" method="request">
                 <td width="90">Группы: </td>

<?
                $res=mysql_query("SELECT * FROM groups WHERE idKurs = $_GET[s]  ORDER by title");
                $res1=mysql_fetch_row($res);
                 if($res1[0]=="") $active="disabled";
                 else{
                         $res=mysql_query("select * from groups WHERE idKurs = $_GET[s]  ORDER by title");
                         $i=0;
                         while($row=mysql_fetch_array($res, MYSQL_ASSOC))        {
                                 ?>

                                 <td style="widht:90px;">
                                          <input type=hidden name=grid<?=$i?> value="<?=$row["title"]?>" ><input style="border:0px" type=checkbox name=gr<?=$i?> > <?=$row["title"]?>
                                 </td>
                                 <? $i++;
                         }
                 };

?>
                <td><input type=hidden name=insertGr  value="y" > <input style="border:0px" type="checkbox" name="checkall2" onclick="checkUncheckAll2(this);"/>Отметить все</td>
                  </form>


newlab.php
Код

<!--BEGIN Скрипт для выбора группы-->
<script type="text/Javascript">
<!--
function sendRequest() {
        try {
                req = window.XMLHttpRequest?new XMLHttpRequest():
                new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
                //Kein AJAX Support
        }

        req.onreadystatechange = handleResponse;
        id = document.getElementById('dropdown').value;
        req.open('get', 'jscripts/ajax_groups.php?s='+ id);
        req.send(null);
}

function handleResponse() {
        if ((req.readyState == 4) && (req.status == 200)) {
                document.getElementById('inhalt').innerHTML = req.responseText;
        }
}
//-->
</script>
<!--ENG Скрипт для выбора группы-->

...
// Сюда толжны пересылаться переменные
$grid_on=array();
if(isset($_REQUEST["insertGr"]) && $_REQUEST["insertGr"]=="y"){
        for($i=0;$i<20;$i++){
                $temp_gr_var="gr".$i;
                $temp_grid_var="grid".$i;
                if(isset($_REQUEST["$temp_gr_var"]) && $_REQUEST["$temp_gr_var"]=="on") $temp_gr_var=$_REQUEST["$temp_gr_var"]; else{ $temp_gr_var="";}
                if(isset($_REQUEST["$temp_grid_var"]) && $_REQUEST["$temp_grid_var"]!="")$temp_grid_var=$_REQUEST["$temp_grid_var"];
                if($temp_gr_var=="on")        $grid_on[]=$temp_grid_var;
        }
        $grid_str="";
        if(count($grid_on)==0) print "<script>window.alert('Выбор групп обезателен!')</script>";
        else{
                for($i=0;$i<count($grid_on);$i++) {
                        // print "id add to lab = ".$grid_on[$i]."<br>";
                        $grid_str.=$grid_on[$i].",";
                }
                print "<script>window.alert('Вы выбрали ".count($grid_on)." Группы/у')</script>";
        }
}

...

// собстна тут появляются группы

        <table id="gr">
                <tr>
                 <td width="30"><? echo ""._USERS_KURS.""; ?>: </td><td>
                 <?
                                print "<input type=hidden name=idKurs value=$idKurs>";
                                print "<select id=\"dropdown\" onChange=\"sendRequest()\" name=\"idKurs\">";
                                print "<option value=\"\">Выбирите курс</option>";
                                $res=mysql_query("SELECT idKurs, Title FROM kurses ORDER by Title");
                                while($row3=mysql_fetch_array($res, MYSQL_ASSOC)) print "<option value=\"".$row3["idKurs"]."\">".$row3["Title"]."</option>";
                                print "</select>";


                 ?>
                </td>
                <td><? echo ""._NEWLAB_SEMESTR.""; ?>: </td>
                <td><input style="border:0px" type=checkbox name="semestr1" > 1 <input style="border:0px" type=checkbox name="semestr2" > 2</td>
                <td> <input style="border:0px" type="checkbox" name="checkall" onclick="checkUncheckAll(this);"/><? echo ""._NEWLAB_CHECKALL.""; ?></td>
                <?
                echo $stop_sem;
                ?>
                </tr>
        </table>
        <table id="gr">
                <tr>
                 <div id="inhalt"></div>
                                 <input type=hidden name=insertGr  value="y" >
                </tr> </table>
        </td>
 </tr> </table>



Если надо будет, то могу выложить или выслать полный скрипт.

Это сообщение отредактировал(а) igramnet - 7.8.2007, 14:56
PM MAIL   Вверх
igramnet
Дата 7.8.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Народ горю... Очень нужно поправить... У меня вот лежат 5 wmz на кошельке, могу их отдать (простите модеры за возможное нарушение правил)... Очень нужна помощь...  ася если нужна 4322286
PM MAIL   Вверх
vasac
Дата 7.8.2007, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Какие данные?
Форма отрисовывается с неверными данными?
Или вообще не отрисовывается?
А обработчик срабатывает?
Код

SELECT * FROM groups WHERE idKurs = $_GET[s]  ORDER by title

Ой, зря вы это. Сходите в поиск по "sql-инъекция"
PM WWW   Вверх
igramnet
Дата 8.8.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Всё отрисовывается и появляется и дажв группы из файла ajax_groups.php выводятся, но при нажатии кнопки "Создать" все данные переносятся кроме групп, т.е. переменные из ajax_groups.php не видны в newlab.php и надо их как-то через ява-скрипт возвращать в newlab.php
PM MAIL   Вверх
igramnet
Дата 9.8.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Нужен человек с помощью за небольшое вознаграждение. 4322286
PM MAIL   Вверх
igramnet
Дата 17.8.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Вот скрипт
Код

<script type="text/Javascript">
<!--
function sendRequest() {
        try {
                req = window.XMLHttpRequest?new XMLHttpRequest():
                new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
                //Kein AJAX Support
        }

        req.onreadystatechange = handleResponse;
        id = document.getElementById('dropdown').value;
        req.open('request', 'jscripts/ajax_groups.php?s='+ id);
        req.send(null);
}

function handleResponse() {
        if ((req.readyState == 4) && (req.status == 200)) {

        var x = document.createElement ("span");
        x.innerHTML = req.responseText;
        document.getElementById('inhalt').appendChild (x);
        }
}

function SendForm() {
    var form = document.getElementById('submform');
    form.submit();
}


var el = new Array;

function addGroup (input)
{


    var id = input.name;
    var val = input.value;

    el[id] = (input.checked) ? val : 0;
    var line = '';
    for (var group in el)
    {
        line = line + ((el[group] != 0) ? el[group]+',' : '');
    }
    document.forms['labDets'].groups.value = line;
}
//-->
</script>


Почему он в опере работает, а в IE нет? И ещё, как сделать, чтобы при каждом запросе, старые данные не удаляются.

Пример дам в личну или в аську.

Это сообщение отредактировал(а) igramnet - 17.8.2007, 10:41
PM MAIL   Вверх
Exception
Дата 17.8.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Во-первых, твой сайт можно сломать за две минуты. Сказали же, поищи по "sql-инъекция". Во-вторых, посмотри, какую ошибку выкидывает осёл, и где.
PM   Вверх
igramnet
Дата 19.8.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Пишет только IE 7

что в    req.open('request', 'jscripts/ajax_groups.php?s='+ id);  есть ошибка (9 символ.)


в опере и ФФ всё нормально.

И ещё, как сделать, чтобы при каждом запросе, старые данные не удаляются.


Цитата(Exception @  17.8.2007,  11:54 Найти цитируемый пост)
Во-первых, твой сайт можно сломать за две минуты. Сказали же, поищи по "sql-инъекция".


Как я понял из статей переменные в SQL надо вносить в одинарные кавычки + мне сказали, что нельзя писать 

SELECT * FROM groups WHERE idKurs = $_GET[s]  ORDER by title

куда же переменную $_GET[s] девать? Как с ней быть? Нельзя же так писать...
PM MAIL   Вверх
Astraller
Дата 19.8.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

Репутация: 2
Всего: 5



Цитата(igramnet @ 19.8.2007,  16:27)
Цитата(Exception @  17.8.2007,  11:54 Найти цитируемый пост)
Во-первых, твой сайт можно сломать за две минуты. Сказали же, поищи по "sql-инъекция".


Как я понял из статей переменные в SQL надо вносить в одинарные кавычки + мне сказали, что нельзя писать 

SELECT * FROM groups WHERE idKurs = $_GET[s]  ORDER by title

куда же переменную $_GET[s] девать? Как с ней быть? Нельзя же так писать...

Правильно будет вот так:
Код

mysql_query("SELECT * FROM `groups` WHERE `idKurs` = '".mysql_escape_string($_GET[s])."'  ORDER by `title`")



--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
igramnet
Дата 19.8.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Astraller, большое спасибо.

Остались вопросы


Цитата(igramnet @  19.8.2007,  16:27 Найти цитируемый пост)
 как сделать, чтобы при каждом запросе, старые данные не удаляются.

и почему в IE 7 не работает?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0795 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.