2015-02-05 3 views
2

У меня есть форма, в которой есть меню выбора выпадающего списка, которое загружает идентификаторы счетов из моей базы данных. Я пытаюсь заполнить свою форму на основе значения счета, выбранного из выпадающего меню. В моей базе данных находится столбец «invoiceidcopy», который содержит значения (-ы), которые отображаются как выделение для моего выпадающего меню. Если вы заметите на моем изображении таблицы моей базы данных ниже, вы заметите, что поле invoiceidcopy первой строки/записи пусто. В моем выпадающем меню ... конечно ... первый выбор пуст. В конечном итоге мой код ниже im пытается получить предварительную заполнение моей формы работает только тогда, когда я выбираю пустой выбор из выпадающего меню, но не для других 2 вариантов выбора? Как я могу заполнить форму на основе выпадающего меню?Как я могу заполнить форму на основе выпадающего меню?

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(); 
    } 
} 
?> 

ответ

0

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

data: { 
     'invoiceidcopy': invoiceidcopy 
    } 

Другим возможным источником вашей ошибки является sql для выбора записей из таблицы. Вы пробовали удаление скобки из имени переменной, как так

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

или даже используя фигурные скобки, как

$query = "SELECT txt1, txt2, q1 
     FROM seguin_orders 
    WHERE invoiceidcopy = {$invoiceidcopy}"; 

Кроме того, это будет хорошо для проверки значения перед отправкой на PHP просто быть уверен, что это то, что вы ожидаете. Например, вы можете сделать что-то вроде:

e.preventDefault(); 
    var invoiceidcopy = $('#dropdown-select').val(); 
    alert(invoiceidcopy); /*display the value to confirm it is correct */ 
    // use the javascript console 
    console.log(invoiceidcopy); 
+0

Пробовал все ваши предложения ... нет ... спасибо за ввод –

+0

Хорошо. Не забудьте предоставить отзыв о решении, если вы его в конечном итоге найдете. – k32y

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