Создание диаграмм слияния из базы данных с переменной where-условие - PullRequest
0 голосов
/ 22 июня 2019

Я создаю FusionCharts с данными из моей базы данных.Это работает, если я устанавливаю статическое условие where с помощью переменной, установленной в коде ($ kommunenr = '3001';).Но я бы хотел, чтобы пользователь веб-сайта выбирал данные, на которых основан график, путем вставки числа в поле формы, т.е. 3018. Таким образом, значение переменной должно исходить от выбора пользователя.Но когда я проверяю, переменная кажется пустой.

Мой код основан на следующих уроках: https://www.fusioncharts.com/dev/using-with-server-side-languages/tutorials/php-mysql-charts https://www.youtube.com/watch?v=nqavhILvBVU https://a1websitepro.com/jquery-ajax-form-submit-with-php-processing/2/

У меня есть следующие файлы:

valginfo.php (главная страница)

skjema.js (получить данные (число) из формы на главной странице)

chart_sample.php (спискиданные из базы данных)

app.js (создает диаграмму)

Я попытался найти ошибку, разместив содержимое файла chart_sample.php в div на главной странице, ив фрейме.И, конечно, гуглить.

Мой запрос в моем chart-data.php (выбирая данные, которые будут использоваться при создании диаграммы):

$query = "SELECT * FROM valg19_kommune WHERE kommunenr = $kommunenr AND kandidatnr = 1 ORDER BY kommunenr, sortering, kandidatnr LIMIT 500";

Работает, если переменная статическая, установите так:

$kommunenr = '3001';

Но когда я устанавливаю переменную следующим образом, она выглядит пустой:

$nr=$_POST['nr1'];
$kommunenr=$nr;

Я ожидаю, что опубликованный номер будет сохранен как значение переменной и будет частью запроса,но это не так.Когда я передаю запрос и результат из chart_sample.php в div на главной странице, я выгляжу идеально:

SELECT * FROM valg19_kommune WHERE kommunenr = 3018 AND kandidatnr = 1 ORDER BY kommunenr, sortering, kandidatnr LIMIT 500
[{"label":"Fremskrittspartiet","value":"42","color":"#000099","tooltext":"Elisabeth Stene"},{"label":"H\u00f8yre","value":"64","color":"#3366ff","tooltext":"Benedicte Dyvik"},{"label":"Kristelig Folkeparti","value":"56","color":"#ffff00","tooltext":"Brynjar H\u00f8idebraaten"},{"label":"Senterpartiet","value":"45","color":"#00cc00","tooltext":"Reidar Kaabbel"},{"label":"Arbeiderpartiet","value":"44","color":"#ff3300","tooltext":"Kai Guttulsr\u00f8d"},{"label":"SV - Sosialistisk Venstreparti","value":"39","color":"#ff4d4d","tooltext":"Tore Andersen"},{"label":"R\u00f8dt","value":"37","color":"#cc0000","tooltext":"Martin Werner Olsen"}] 

Но в моем iFrame это отображается:

SELECT * FROM valg19_kommune WHERE kommunenr = AND kandidatnr = 1 ORDER BY kommunenr, sortering, kandidatnr LIMIT 500[] 

Содержание iframe не обновляется, когда я отправляю номер.

Как я могу убедиться, что график составлен на основе введенного пользователем числа?

Before I enter a number in the form field

After I entered the number

If I set the variable as this $kommunenr = '3001'; and remove the echo og the query.

  1. Прежде чем вводить число в поле формы
  2. После того, как я ввел число
  3. Если я установлю переменную как this $ kommunenr = '3001';и удалите эхо-запрос.

1 Ответ

0 голосов
/ 22 июня 2019

Теперь я чувствую себя действительно глупо!Я должен использовать сессии и глобальные переменные!

Начать каждую страницу с session_start ();и сначала установите, а затем используйте глобальные переменные:

$_SESSION["kommunenr"] = $kommunenr;

$kommunenr = $_SESSION["kommunenr"];
...