Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: AJAX-передача значения из выпадающего списка
 
 автор: Belkin   (30.12.2011 в 18:15)   письмо автору
 
 

Здравствуйте!

Смотрите, есть форма выбора вот:


<form method="post">
   <select name="selectors">
      <option value="10">Вывод по 10 штук</option>
      <option value="30">Вывод по 30 штук</option>
      <option value="50">Вывод по 50 штук</option>
   </select>
</form>


Нужно, чтобы при выборе данных они передавались сразу, без SUBMIT, то есть с помощью AJAX. Можете показать, как это осуществить?
Можно с JQUERY!

За ранее спасибо!

  Ответить  
 
 автор: cheops   (30.12.2011 в 18:28)   письмо автору
 
   для: Belkin   (30.12.2011 в 18:15)
 

А куда передавать? Пусть будет PHP-обработчик handler.php с незамысловатым содержимым (я обычно с такого всегда начинаю)
<?php
  
echo "<pre>";
  
print_r($_GET);
  echo 
"</pre>";
?>

Тогда для решения вашей задачи можно начать отталкиваться от следующего скрипта
<html>
<head>
  <title>jQuery</title>
  <script type="text/javascript" src="jquery.js" ></script>
  <script type="text/javascript">
  $(document).ready(function(){
    // AJAX-обработчик для выпадающего списка
    $('select[name=selectors]').change(function(){
      var url = "handler.php?val=" + $('select[name=selectors]').val();
      url = encodeURI(url);
      $('#id_result').load(url);
    });
  });
  </script>
</head>
<body>
  <form method="post">
    <select name="selectors">
      <option value="10">Вывод по 10 штук</option>
      <option value="30">Вывод по 30 штук</option>
      <option value="50">Вывод по 50 штук</option>
    </select>
  </form>
  <div id='id_result'></div>
</body>
</html>

  Ответить  
 
 автор: Belkin   (30.12.2011 в 19:48)   письмо автору
 
   для: cheops   (30.12.2011 в 18:28)
 

Спасибо, работает, но почему-то появляется еще раз форма, вот скрин
http://s3.amazonaws.com/awesome_screenshot/1261831?AWSAccessKeyId=0R7FMW7AXRVCYMAPTPR2&Expires=1325260264&Signature=YMXV8EN09GVu8dTPFKsyu%2F8thoc%3D
и как передавать POST запрос?

  Ответить  
 
 автор: cheops   (30.12.2011 в 20:02)   письмо автору
 
   для: Belkin   (30.12.2011 в 19:48)
 

handler.php должен быть независимым скриптом, если хочется обратиться к тому же скрипту, где расположена форма, то отслеживайте параметры и если они переданы скрипту - не выводите форму.

>и как передавать POST запрос?
GET-параметры передавайте не в строке запроса, а во-втором параметре метода load(), в этом случае они автоматически пойдут в качестве POST-параметров. Как вариант можно задействовать метод .ajax(), который позволяет более гибко управлять AJAX-вызовами.

  Ответить  
 
 автор: Belkin   (30.12.2011 в 21:32)   письмо автору
 
   для: cheops   (30.12.2011 в 20:02)
 

Так, все с этим разобрался.

Теперь еще одно, смотрите.

Есть index.php и q.php - это ваш handler.php :)

Я пытаюсь в q.php сделать что-то типа:

session_start();
$_SESSION['a'] = $_GET['val'];

или просто

$a = $_GET['val'];

а в index.php

...
include 'q.php';
echo $a;
...

или

...
echo $_SESSION['a'];
...

но ничего не работает. Как можно передать этот параметр в index.php, просто то, что мне нужно - так это вывести без перезагрузки переменную в index.php.

  Ответить  
 
 автор: cheops   (30.12.2011 в 21:33)   письмо автору
 
   для: Belkin   (30.12.2011 в 21:32)
 

А в index.php есть вызов функции session_start()? Если нет, нужно добавить.

  Ответить  
 
 автор: Belkin   (30.12.2011 в 21:44)   письмо автору
 
   для: cheops   (30.12.2011 в 21:33)
 

Да, конечно есть.

  Ответить  
 
 автор: Belkin   (30.12.2011 в 21:47)   письмо автору
 
   для: Belkin   (30.12.2011 в 21:44)
 

Все, разобрался с ajax();!
Cheops, еще раз спасибо за помощь!

С наступающим всех!

  Ответить  
 
 автор: АЯС   (30.12.2011 в 19:48)   письмо автору
 
   для: Belkin   (30.12.2011 в 18:15)
 

http://codecenter.awardspace.com/selects.html

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования