Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 1099
от 10.03.2009, 21:05

Администратор:
В рассылке:Подписчиков: , Экспертов:
В номере:Вопросов: 3, Ответов: 7

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 162068: Здравствуйте. Моя проблема: -есть два объекта формы <select name="FIO"> и <input type="text" name="TITLE">; -в список <option> первого объекта делаю загрузку элементов из БД(MySQL); -после того...


Вопрос № 162111: Здравствуйте уважаемые эксперты. Помогите пожалуйста разобраться с данной задачкой: "Присвоить значения элементам массива случайным образом. Отсортировать элементы массива. Вывести на печать в обратном порядке (по убыванию индексов). Я ...
Вопрос № 162144: Здравствуйте уважаемые эксперты. Помогите пожалуйста разобраться с данной задачкой: "Тема. Работа с файлами. Разработать сценарий, позволяющий инициализировать пользователя по трем категориям: зарегистрированный пользователь, пользователь,...

Вопрос № 162.068
Здравствуйте. Моя проблема:
-есть два объекта формы <select name="FIO"> и <input type="text" name="TITLE">;
-в список <option> первого объекта делаю загрузку элементов из БД(MySQL);
-после того как пользователь сделал выбор в selecte нужно автоматически в текстовое поле "воткнуть" соответствующее этому выбору значение, которое тоже должно браться из БД;
Проще говоря - выбрал имя сотрудника и тут же увидел его должность. Буду очень признателен, если объяснение будет на каком-нить примерчике. Спасибо :)
Отправлен: 05.03.2009, 08:55
Вопрос задал: Antonnestor2
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Иванов
Здравствуйте, Antonnestor2!

jQuery

$('наш select').change(function(){
$.ajax({url: адрес на сервере для взятия значения из бд,
data: {selectId: $(this).val()},
dataType: 'json'
success: function(data){
$('наш input').val(data['поле возврата. из БД']);
}
});

});

серверную часть напишите под свою архитектуру

в простейшем случае это будет:
В обработчике вашего адреса (указанного выше в функции) берём параметр selectId и делаем запрос в БД и возвращаем json-данные на клиент типа так die(json::encode(array('поле' => данные))); код условен, функции используйте соответствующие вашей архитектуре.

успехов.
Ответ отправил: Евгений Иванов (статус: Посетитель)
Ответ отправлен: 05.03.2009, 09:11

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245078 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Товарищ Бородин
    Здравствуйте, Antonnestor2!
    Коль скоро коллега меня опередил с клиентской частью(я тоже "яростный" фанат jQuery ), попробую упредить Ваши вопросы с организацией серверной части.

    Чтобы в таком варианте клиент получил данные, их надо соответствующим образом закодировать. Для этого можно использовать стандартную функцию PHP(если версия PHP = 5.2.x) - json_encode. Ей следует передать значение, получаемое из базы данных с помощью запроса. То есть, посылаете значение из списка на сервер, делаете поиск строки, соответствующей данному значению(желаю Вам, чтобы значения в списке были уникальными).
    Пример запроса:
    SELECT `dolzhnost` FROM `table` WHERE `name` = 'Вася'; Где "Вася" - пересылаемое Вами из списка значение. По данному запросу должна выдаваться всего одна строка таблицы, то есть, поле name должно быть ключом таблицы. Замените слова dozhnost, table, name и "Вася" на более подходящие Вашей ситуации.
    После этого передаете результат в функцию json_encode, а результат ее работы выводите через die, как Вам советовал Евгений Иванов.
    Если json_encode не срабатывает, можно привлечь стороннюю библиотеку для кодирования. Для этого можно использовать PEAR, Zend Framework. С первым помочь не смогу, ибо никогда с ним не работал, а если понадобится консультация по второму - всегда пожалуйста.

    Скачать библиотеку jQuery Вы можете ЗДЕСЬ

    С уважением, Товарищ Бородин
    Ответ отправил: Товарищ Бородин (статус: Посетитель)
    Ответ отправлен: 05.03.2009, 09:54

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245082 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Волков Алексей
    Здравствуйте, Antonnestor2!
    ещё можно сделать это при помощи AJAX, но самый простейший вариант (при условии небольшого списка опций) - сделать в джава-скрипте выгрузку в массив "должностей" и по событию onChange select'a присваивать TITLE.value соотв. элемент заранее выгруженного массива.

    Приложение:

    Ответ отправил: Волков Алексей (статус: Посетитель)
    Ответ отправлен: 05.03.2009, 09:58

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245084 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 162.111
    Здравствуйте уважаемые эксперты.
    Помогите пожалуйста разобраться с данной задачкой:
    "Присвоить значения элементам массива случайным образом. Отсортировать элементы массива. Вывести на печать в обратном порядке (по убыванию индексов).
    Я к сожалению с PHP никогда не имел дела и не представляю, как это можно реализовать в данном языке.
    Отправлен: 05.03.2009, 15:47
    Вопрос задал: Антон Аз
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Волков Алексей
    Здравствуйте, Антон Аз!

    Принципиально ничем не отличается от других языков.
    генератор псевдослучайных чисел: rand ([ int $min ], int $max )

    При вызове без параметров min и max , возвращает псевдослучайное целое в диапазоне от 0 до RAND_MAX. Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand (5, 15).

    заполняем массив, например в цикле до 5:

    for ($i=0; $i<5; $i++) {
    $massiv[$i] = rand (0, 100);
    };

    сортируем по какому признаку, в какой последовательности? например, по возрастанию: ( http://docs.php.net/manual/ru/function.sort.php )
    sort($massiv);

    выводим наоборот:

    for ($i=0; $i<count($massiv); $i++) {
    echo $massiv[(count($massiv)-1-$i)]."<br> ";
    };

    Приложение:

    Ответ отправил: Волков Алексей (статус: Посетитель)
    Ответ отправлен: 05.03.2009, 16:15

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245125 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Hubbitus
    Здравствуйте, Антон Аз!

    Хм, что-то мне подсказывает что это учебное задание и решать его не сильно правильно? Впрочем, если Вам оченб хочется, то задание-таки элементарное:

    Приложение:

    Ответ отправил: Hubbitus (статус: Посетитель)
    Ответ отправлен: 05.03.2009, 16:28

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245127 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 162.144
    Здравствуйте уважаемые эксперты.
    Помогите пожалуйста разобраться с данной задачкой:
    "Тема. Работа с файлами. Разработать сценарий, позволяющий инициализировать пользователя по трем категориям: зарегистрированный пользователь, пользователь, который неправильно ввел логин или пароль и незарегистрированный пользователь. Предоставляется 3 попытки, после 3 попытки выводится соответствующее сообщение".
    В данном случае по условию надо создать отдельный тхт файл, в который заносятся сообщения, например: "зарегистрируйтесь"/"неправильный логин или пароль/ "добро пожаловать" и при различных комбинациях логина/пароля выводится то или иное сообщение
    с началом я разобрался, а вот как сделать 3 попытки к сожалению не могу "догнать".
    Начало в приложении:

    Приложение:

    Отправлен: 05.03.2009, 19:12
    Вопрос задал: Антон Аз
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 5)

    Отвечает: Alex_Nick
    Здравствуйте, Антон Аз!

    самый простой вариант - ввести в форму поле "num" например:
    <input type="hidden" id="num" value="<?php if(isset($_GET['num'])) echo ($_GET["num"]+1); else echo "1"?>">

    PHP вставка проверит на этапе генерации формы, первая ли это попытка ввода данных. если первая - значение скрытого элемента управления будет 1, иначе - номер попытки заполнения данных.

    Далее добавляем оценку значения $_GET['num'] в обработчик формы:
    if((isset($_GET['num']))&&($_GET['num']>=3))
    echo "Превышено количество попыток подключения";
    else
    {?>
    //код вашей формы
    <?php
    }
    ?>


    В приложении код файла.

    С уважением, Alex

    Приложение:

    Ответ отправил: Alex_Nick (статус: Посетитель)
    Ответ отправлен: 05.03.2009, 19:31

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245146 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Товарищ Бородин
    Здравствуйте, Антон Аз!
    Что касается трех попыток, то тут, я думаю, лучший вариант - назначить переменную сеанса. Идея такова: в начале страницы открываете сеанс с помощью функции session_start(), и при первом запуске назначаете переменную, скажем, $_SESSION['tries_number']. Код такой(примерно, естественно):

    if (!isset($_SESSION['tries_number'])) {
    $_SESSION['tries_number'] = 1;
    } else {
    $_SESSION['tries_number']++;
    // если счетчик попыток больше 3, то есть, пользователь исчерпал свои 3 попытки, то делаем какие-либо действия - предупреждение выводим
    if ($_SESSION['tries_number'] > 3) {
    // предупреждение
    } else {
    // даем пользователю возможность сделать еще одну попытку
    }
    }

    С уважением, Товарищ Бородин
    Ответ отправил: Товарищ Бородин (статус: Посетитель)
    Ответ отправлен: 05.03.2009, 19:33

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245147 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное