2013-11-11 3 views
0

Я пытаюсь заполнить выпадающий список из таблицы mysql на основе выбора в предыдущем раскрывающемся списке.Разбивка на основе предыдущего выбора вообще не заполняется

Я посмотрел на многие вопросы, спрашивая, как это сделать, и подошел с ума, однако ничего не происходит со вторым выпадающим списком, когда я выбираю что-то с первого.

У меня есть newStock.php со следующим скриптом в голове.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
<script type="text/javascript"> 
       $(function(){      
      $('#field').change(function(){ //on change event 
      var fieldVal = $('#field').val(); //<----- get the value from the parent select 
      $.ajax({ 
       url  : 'process.php', //the url you are sending datas to which will again send the result 
       type : 'GET', //type of request, GET or POST 
       data : { fieldValue: fieldVal}, //Data you are sending 
       success : function(data){$('#field2').html(data)}, // On success, it will populate the 2nd select 
       error : function(){alert('an error has occured')} //error message 
      }) 
     }) 

     }) 
</script> 

С двух капельных падениями, созданных в организме:

<?php 
connect('final');//connect to DB 
$sql = mysql_query("SELECT * FROM stockcata"); 
    while ($row = mysql_fetch_array($sql)){ 
      echo '<option value='.$row['id'].'>' .$row['Catagory']. '</option>'; 
     } 
?> 
</Select> </label> 

<input type="text" name="addCatagory" /> 

<label><span>Section</span> 
<Select name="field2" id="field2"> 

</Select> </label> 

И следующий process.php используется для запроса моей базы данных и предоставить возможности для заполнения во втором раскрывающемся списке

<?php 
require("header.php"); 
connect('final'); 

$temp = $_GET['fieldValue']; 
$result = mysql_query("SELECT * FROM stocksection WHERE cataID = '$temp'"); 
while ($row = mysql_fetch_array($result)){ 
echo '<option value='.$row['id'].'>' .$row['section']. '</option>'; 
} 
?> 

Во втором раскрывающемся списке ничего не происходит, я понятия не имею, почему.

Редактировать .........

я пытался отладить его дальше. Моя база данных настроена на 2 таблицы; Раздел: ID, название, Catagory_ID

и категоризация:: ID, Название

Когда он запрашивает раздел таблицу, только возвращающие данные с Catagory_ID 0, независимо от того, какой варианта я выбрал из выпадающего

+2

Добавить линии отладки ... Является ли 'data' тем, что вы ожидаете? Это называется? Мы не можем помочь вам без подробностей. – epascarello

+1

С помощью отладчика вы можете определить, действительно ли выполняется вызов 'ajax()'? Если он возвращает значение? Если это значение правильно сформировано? –

+0

В зависимости от того, что находится в вашем 'header.php', JQuery, возможно, не сможет правильно определить тип ответа сервера. Было бы безопаснее просто указывать 'contentType:" text "' в вызове 'ajax()'. –

ответ

1

data в успехе вашего вызова ajax не является той строкой, о которой вы думаете. Вы, наверное, хотите что-то вроде этого:

success : function(data){$('#field2').html(data.d)}, // On success, 

Попробуйте console.log(data.d);, если это не работает, чтобы увидеть, что вы возвращаете.

+0

Я не уверен, что если я делаю это правильно, я ставлю console.log ниже «error:» get «Uncaught SyntaxError: Неожиданный токен». Когда страница загружается –

+0

, выполните следующие действия: 'success: function (data) {console.log (data.d);}, 'и откроем окно консоли, чтобы узнать, что он регистрирует. – zgood

+0

Спасибо, впервые используя Javascript, и я не понимал, что могу отлаживать его так. Получается, что переменная, передаваемая в поле VAL, была неправильной, и ничего не было правильно задано. –

Смежные вопросы