2013-06-04 7 views
-2

Я пытаюсь получить значение моей выбранной опции в своем PHP, чтобы я мог использовать ее в запросе. Однако он постоянно возвращается: nullGET выбранная опция для PHP

Мой код:

<form onsubmit="getAlles()" method = "get"> 
    <select name="optionsDrop" id = "optionsDrop" class="buttons"> 

    </select> 
    <input name="submitbutton" type="submit" value="submit" onclick = 'refresh()' />  
</form> 

Javascript:

window.onload= function getAlles() 
{ 
$.getJSON('js/getVoorraad.php', function (data) { 
    refresh('#voorraadTable', data); 
}); 

function refresh (tbBodyId, data) { 
    var i, j; 
    arrHTML = []; 

    console.log(data); 
    for (i = 0; i < data.length; i++) { 
     arrHTML.push('<tr>'); 
     for (j= 0; j < data[i].length; j++) { 
      arrHTML.push('<td>' + data[i][j] + '</td>'); 
     } 
     arrHTML.push('<td>' + "<input type = 'number' value = '1' min = '1' style=\"width: 40px;\" onKeyUp=\"this.style.width = Math.max(40,this.value.length*13)+'px';\"></input>" + '</td>'); 
     arrHTML.push('<td>' + "<button class='but' onClick = 'replyClick(this.id)'>Voeg toe</button>" + '</td>'); 
     arrHTML.push('</tr>'); 
    } 
    $(tbBodyId).html(arrHTML.join('')); 


} 

} 

Варианты вставляются из базы данных. Что я хочу сделать: выберите вариант из окна выбора, который затем будет передан PHP. Затем я вставляю выбранную опцию в инструкцию WHERE в SQL.

PHP код:

<?php 
header('Content-type: application/json'); 

$selectedoption = $_GET['optionsDrop']; 

var_dump($_GET); 
var_dump($selectedoption); 

$accdbFilename = "C:\Users\Me/Proftaak DBB.accdb"; 
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$accdbFilename", "", ""); 

$qFormat = <<<EOQ 
select l.Naam, ac.catomschrijving, Aantal 
from voorraad vo, locatie l, artikelcategorie ac 
where vo.typeNr = ac.typeNr 
and l.locatieNr = vo.locatieNr 
and l.Naam = '%s' 
EOQ; 
var_dump($qFormat); 

$query = sprintf($qFormat, $selectedoption); 
var_dump($query); 

$result = odbc_exec($connection, $query); 

$rs = []; 
for ($rownr = 0; odbc_fetch_row($result); $rownr++) { 
    for($colnr = 1; $colnr <= odbc_num_fields($result); $colnr++) { 
     $rs[$rownr][] = odbc_result($result, $colnr); 
    } 
} 

echo json_encode($rs); 
odbc_close($connection); 
?> 

Однако он продолжает говорить:

Undefined индекс: Undefined индекс: optionsDrop в C: \ Users \ Me \ voorraadbeheer \ JS \ getVoorraad.php на линии
массив (0) {} NULL

Как получить значение или текст из опции в поле выбора. Так я могу использовать его?

+0

проверьте в консоли своего браузера, как (firebug), что происходит в GET. и когда вы вызываете 'refresh()' on onsubmit, почему это связано с любыми параметрами? –

+1

Вы не передаете какой-либо аргумент вашему скрипту PHP. Вот почему вы сталкиваетесь с этой проблемой. –

ответ

0

Поправьте меня, если я ошибаюсь, но это не так просто, что вы не пропуская никаких данных через звонок getJSON? (http://api.jquery.com/jQuery.getJSON/).

window.onload = function() 
{ 
    $("#optionsDrop").change(function() 
    { 
     $.getJSON('js/getVoorraad.php', 
      {optionsDrop:$("#optionsDrop").val()}, 
      function (data) { 
       refresh('#voorraadTable', data); 
      } 
     ); 
    }); 
} 
0

Избавиться от onSubmit = «getAlles()» и положить действие = «JS/getVoorraad.php»

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