Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не передает POST значении (https://javascript.ru/forum/events/31173-ne-peredaet-post-znachenii.html)

Юсуф 29.08.2012 08:13

Не передает POST значении
 
Есть форма
<form method="POST" enctype="multipart/form-data" action="" id="SignupForm">
Раздел товара:
 <select  id="countrydropdown">
      <option value="0">Выбрать раздел товара</option>
        <?php
              $query = "SELECT * FROM razdel ";
              $sql = mysql_query ($query)  or die (mysql_error());  
     
               while ($result = mysql_fetch_assoc ($sql)) {
        ?>
   
   
   
   <option value="<?=$result['r_id'];?>"><?=$result['r_title'];?></option>
   
 <?php } ?>
  </select>


 Подраздел товара:
<select  disabled="disabled" id="areadropdown" name="pr_cat">
     <option >Выберите подраздел товара из списка</option>
</select>
  

<input type="submit" value="Добавить данные" name="NewTovar" />
 </form>


Так вот когда пользователь выбирает список из Пункта "Раздел товара" то должен сработать скрипт

$(document).ready(function () {
   
   $('#countrydropdown').change(function(){
   var countryvalue = $('#countrydropdown option: selected').val(); 
   getarea(); 
    
   });
             
              
});


function getarea () {
   var countryvalue = $('#countrydropdown option: selected').val();   
   var area = $('#areadropdown'); 
      
        if (countryvalue == 0) {
           area.attr("disabled",true);
           
           
        }
        else{
   
          area.attr("disabled",false);  
          area.load ('getarea.php',{country : countryvalue});
          
        }
    
}


Этот скрит должен передать значение countryvalue в файл getarea.php

Вот сам код из файла getarea.php

<?php

$country = $_POST['$country'];




     $query = "SELECT * FROM podrazdel where pr_cat =".$country;
     $sql = mysql_query ($query)  or die (mysql_error());  
     ?>
      <select name="pr_title" id="podrazdel"><option >Выбрать подраздел товара</option>
     <?php
     
     while ($result = mysql_fetch_assoc ($sql)) {
        
   ?>
  
   
   
   <option value="<?=$result['pr_id'];?>"><?=$result['pr_title'];?></option>
   
 <?php } ?>
  </select>


И вот тут проблема, он не получает значени переданное из js скрипта
то есть $_POST['$country'] ни чему не равна!
если сделать так
$country = 8; или $country = 12; То все работает, выводит из БД все что равно цифре указанное в переменной $country!

lord2kim 29.08.2012 08:52

Юсуф, может
$_POST[country]

или заключите элементы объекта в кавычки
{ 'country': 'countryvalue' }

Юсуф 29.08.2012 19:40

чет не то, все равно не робит

Юсуф 30.08.2012 08:22

так не кто не может помочь?

Deff 30.08.2012 09:18

Юсуф,
:) Отправкой значения формой, Post запросом - та же фигня ?

Slavenin 30.08.2012 10:37

Цитата:

Сообщение от lord2kim (Сообщение 201319)
Юсуф, может
$_POST[country]

или заключите элементы объекта в кавычки
{ 'country': 'countryvalue' }

уважаемый, вы с php работали? o_О

{ 'country': 'countryvalue' }

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

найдите отличие...

var countryvalue = $('#countrydropdown :selected').val();


дебагер в таких вещах - волшебная вещь! ff - f12, опера - ctrl+shift+i

area.attr("disabled",false);

не уберет disabled с элемента! Читаем спецификацию по атрибуту! Для удаления disabled нужно делать именно его удаление через
.removeAttr('disabled')


что это
Цитата:

$_POST['$country']
? о_О
$_POST['country']

lord2kim 30.08.2012 10:41

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

Slavenin 30.08.2012 10:48

Цитата:

Сообщение от lord2kim (Сообщение 201609)
Slavenin
и обычно он глобальные массивы пусты, если использовать по другому...

смысл фразы ускользает... Любое переданное значение является ключом глобального массива, но никак не константой...
print_r($_POST);


http://www.php.net/manual/ru/reserve...ables.post.php

о безопасности засовывания значения переменных от браузера напрямую в запрос, я вообще молчу...

Можно ведь сунуть в значение что угодно... Читаем про sql инъекции, ну и элементарная кавычка в значении убъет запрос...

Юсуф 30.08.2012 11:28

что это
Цитата:
$_POST['$country']
? о_О
$_POST['country']

Простите это отпечатка! Я не совсем понял вашу мысль решения данной проблемы... (((

Slavenin 30.08.2012 11:50

итак:
1. Открываем дебагер (в зависимости от браузера открывается по разному)
2. Переходим на закладку со скриптами (сценариями)
3. Находим проблемный момент в скрипте(можно воспользоваться поиском дебагера)
4. Ставим точку останова в нужной строке(щелкаем мышкой по номеру строки)
5. Вызываем событие(меняем значение в селекте)
6. В наблюдении смотрим за значением переменных
7. И, о чудо, видим, что значения то у нас нет! Так как jq не найдет значения по неправильному селектору!
правильный вариант
var countryvalue = $('#countrydropdown :selected').val();

8. Браузер знает, что запрос ушел на сервер, это можно увидеть на закладке сеть(каждый запрос можно развернуть и увидеть, что уходит на сервер)


Часовой пояс GMT +3, время: 03:21.