onclick -> mysql query -> javascript; та же страница

Мне нужна кнопка, чтобы начать запрос mysql, а затем вставить результаты в блок кода javacript, который должен отображаться на той же странице, на которой кнопка включена. Запросы mysql исходят из значений раскрывающихся меню.

Домашняя страница содержит

two drop down menus div id='one' to hold the results javscript code block a button to stimulate the mysql query to be displayed in div id ='one' through Javascript flow of the process is as such 1. user chooses an option from each drop down 2. when ready, the user clicks a button 3. the onclick runs a mysql query with selections from the drop down menu. 4. send the results as array from the mysql query into the javascript code block 5. display the results in div id ='one' 

все это должно произойти на одной странице!

Проблема, с которой я сталкиваюсь, заключается в том, что, как только страница загружается, javascipt статичен. Я не могу нажать результаты mysql в javascript на странице, в которой я должен появиться. Наличие всего на одной странице вызывает проблемы.

Я не ищу для меня точный код, просто правильный поток процесса, который должен быть использован для достижения этого. Заранее спасибо!

я пробовал

используя оба выпадающих меню для вызова той же функции javascript, которая использовала httprequest. Функция была направлена ​​на страницу php, которая обрабатывала mysql. Затем результаты возвращались обратно через httprequest на домашнюю страницу.

Я попытался сохранить весь блок кода Javascript как переменную php с уже полученными в ней результатами mysql, а затем возвратил переменную на домашнюю страницу через HTTPRequest, думая, что я могу создать динамический код javascript таким образом. Ничего не сработало

Вам нужно использовать технологию AJAX. Я бы порекомендовал метод .ajax() jQuery . Попытка сделать сырое XHR в лучшем случае болезненна.

Вот как вы хотите структурировать свой код:

  1. Загрузите страницу.
  2. Пользователь выбирает вариант.
  3. Слушатель onChange запускает запрос AJAX
  4. Сервер получает и обрабатывает запрос
  5. Сервер отправляет обратно массив JSON для зависимого выбора
  6. Отправитель AJAX на стороне клиента получает ответ назад
  7. Клиент обновляет выбор, чтобы иметь значения из массива JSON.

В принципе, HTTP не имеет гражданства, поэтому, как только страница будет загружена, все будет сделано. Вам потребуются последовательные запросы на сервер для динамических данных.

Используйте AJAX,

пример

 $.ajax({ type: "POST", url: "yourpage.php", data: "{}", success: function(result) { if(result == "true") { // do stuff you need like populate your div $("#one").html(result); } else { alert("error"); } } }); 

Для этого вам нужно изучить ajax.Это используется для запроса без перезагрузки страницы. Так что вы можете сделать фоновый вызов mysql

ваш код будет чем-то вроде этого

 $("#submitbutton").live("click",function(){ $.ajax({url:"yourfile"},data:{$(this).data}).done(function(data){ //this data will in json form so decode this and use this in div 2 var x =$.parseJSON(data); $("#div2").html(x.val()); }) }) 

и "yourfile" – это основной файл, который подключается к серверу и делает запрос базы данных

вот как я использовал метод onchange, чтобы стимулировать запрос MYSQL и отображать результат Highchart. Основная проблема заключалась в том, что возвращаемый массив JSON представлял собой строку, которая должна была быть преобразована в INT. Переменная resultArray затем используется в части данных: highChart.

 $(function(){ $("#awayTeam").change(function(){ $.ajax({ type: "POST", data: "away=" + $("#awayRunner").val(), dataType: "json", url: "/getCharts.php", success: function(response){ var arrayLength = response.length; var resultArray = []; var i = 0; while(i<arrayLength){ resultArray[i] = parseInt(response[i]); i++; } в $(function(){ $("#awayTeam").change(function(){ $.ajax({ type: "POST", data: "away=" + $("#awayRunner").val(), dataType: "json", url: "/getCharts.php", success: function(response){ var arrayLength = response.length; var resultArray = []; var i = 0; while(i<arrayLength){ resultArray[i] = parseInt(response[i]); i++; } 

В PHP-коде массив должен быть возвращен как JSON, как это

echo json_encode ($ awayRunner);