2015-02-07 3 views
0

Привет, Я пытался выяснить, как заполнить мои данные из моей базы данных на основе выбора из выпадающего меню. Он был на пару недель, но не мог понять это ... благодаря особой помощи.Как я могу заполнить свою форму данными из моей базы данных на основе выпадающего меню?

У меня есть форма, в которой есть меню выбора выпадающего списка, которое загружает идентификаторы счетов из моей базы данных. Я пытаюсь заполнить форму на основе значения выбранного счета.

В моей базе данных данные столбца "invoiceidcopy" отображаются в качестве выделения для каждого значения записи/строки в раскрывающемся меню.

Если вы заметили на моем изображении таблицы моей базы данных ниже, вы заметите, что поле строки счета-фактуры первой строки/записи пустое .. поэтому ... в моем выпадающем меню ... первый выбор пуст.

В конечном счете мой код ниже работает только тогда, когда я выбираю пустой выбор из выпадающего меню, но не для других 2 вариантов выбора?

Что-то не так с моим кодом и с кем-либо другим способом добиться этого ... Спасибо u.

DataBase

ФОРМА

<form action="#"> 

<select id="dropdown-select" name="dropdown-select"> 
<option value="">-- Select One --</option> 
</select> 

<button id="submit-id">Prefill Form</button> 

<input id="txt1" name="txt1" type="text"> 
<input id="txt2" name="txt2" type="text"> 



<button id="submit-form" name="Submit-form" type="submit">Submit</button> 


</form> 

SCRIPT

<script> 
    $(function(){ 


     $('#submit-id').on('click', function(e){ 


      var invoiceidcopy = $('#dropdown-select').val(); 
      e.preventDefault(); 

      $.ajax({ 
       url: "/tst/orders2.php", 
       data: { 
       'invoiceidcopy': invoiceidcopy 
       } 
      }).done(function(data) { 

    data = JSON.parse(data); 

$('#txt1').val(data.txt1); 
$('#txt2').val(data.txt2); 


}); 
     }); 
    }); 
</script> 

/tst/orders2.php

<?php 

// Create the connection to the database 
$con=mysqli_connect("xxx","xxx","xxx","xxx"); 


// Check if the connection failed 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    die(); 
} 

    if (isset($_GET['invoiceidcopy'])) 
{ 
    $invoiceidcopy= $_GET['invoiceidcopy']; 

    $query = "SELECT txt1, txt2, q1 
     FROM seguin_orders 
    WHERE invoiceidcopy = '".$invoiceidcopy."'"; 

    $result = mysqli_query($con,$query); 

    while ($row = mysqli_fetch_assoc($result)) 
     { 
echo json_encode($row); 
die(); 
    } 
} 
?> 
+1

Как показано в примере, будет ли он заполнен из БД? Я не вижу данных в этом примере. Также вам не нужен e.preventDefault(); в вашей функции щелчка. – minion

+0

K ну да выпадающее меню заполняется с использованием значений столбцов invoiceidcopy как выборки из той же базы данных. В примере это dosent показывает выбор b/c, который загружает выбранные значения, когда страница загружается ... с использованием отдельного кода и скрипта –

ответ

0

Как указано minion, что именно отправляется как счет-фактура? Из того, что я вижу, выбор последнего должен отправить «ЭТО ТЕСТ 2759f633-d6cb-4b3e-b4dc-3a4d0b54367 ...» точно. Было бы лучше придумать еще один более короткий ключ для этого поля, например «ThisIsATest-2759f633» или «ThisIsATest-201502070057». Также имейте в виду, что вы хотите дезинфицировать входные данные, чтобы избежать внедрения SQL. Несмотря на то, что это выпадающий список, кто-то может использовать HTML для изменения переменной.

+0

Данные столбца Invoiceidcopy - это то, что генерируется в выпадающем меню ... ваше право, последний выбор отправляет точно что. Но, как я уже сказал, этот код работает только тогда, когда вы выбираете пустой выбор ... когда вы это делаете, он заполняет форму данными, связанными с invoiceidcopy. Но, как когда вы выбираете последний ... никакие значения не заполняются ... не могу это отобразить ... мой код выглядит так, как будто он должен работать ... –

+0

Последнее, что я могу придумать, чтобы устранить код, - это эхо какие данные var содержатся перед добавлением в txtbox – Randell

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