Я работаю над php и MySQL. Я хочу отобразить номер и адрес выбранного пользователя. Я использовал AJAX с другой страницы. и мой запрос отлично работает. Я могу отображать данные выбранного пользователя.

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

Перед выбором из раскрывающегося списка:

Before selection from dropdown

После выбора из раскрывающегося списка:

After selection from dropdown

Мой код перед отправкой данных:

<div style="margin-bottom: 3%;" class="col-md-12">                   
    <div class="col-md-6" style="margin-top: -2%;">
      <label>GSTIN</label>
        <label  name="gstn" class="control-label" value="" id="state-list1">
    </div>                                                        
</div>
<div style="margin-bottom: 3%;" class="col-md-12">                   
    <div class="col-md-5" style="margin-top: -5%;">
      <label>Billing Address</label>
        <label  name="billingAddress" id="state-list" class="control-label demoInputBox"  value="">
    </div>                                     
</div>

Код после вызова ajax:

<?php
if (!empty($_POST['customer_name'])) 
{ 
  $query = mysqli_query($conn,"SELECT  customer_locations.address , customer_locations.state ,customer_locations.custLocId, customer_locations.city , customer_locations.pin , customer_locations.locality, customer_locations.gstNo ,customer_master.defaultBilling , customer_master.defaultsupply FROM customer_locations INNER JOIN customer_master ON customer_locations.customerId = customer_master.customerId WHERE customer_master.customerId = '" . $_POST["customer_name"] . "'");
  ?>  
  <?php
  while ($row = mysqli_fetch_array($query)) {
    ?>
    <label value="<?php echo $row["custLocId"];?>"><?php echo $row['gstNo'];?></label><br>
<?php }}?>
<?php
if (!empty($_POST['customer_name'])) 
{ $query = mysqli_query($conn,"SELECT  customer_locations.address , customer_locations.state , customer_locations.custLocId ,customer_locations.city , customer_locations.pin , customer_locations.locality, customer_locations.gstNo ,customer_master.defaultBilling , customer_master.defaultsupply FROM customer_locations INNER JOIN customer_master ON customer_locations.customerId = customer_master.customerId WHERE customer_master.customerId = '" . $_POST["customer_name"] . "'"); 
  ?>  
  <?php
  while ($row = mysqli_fetch_array($query)) {
    ?><label value="<?php echo $row["custLocId"];?>"><?php echo $row['defaultBilling'];?></label>
<?php }}?>

Скрипт для вызова ajax:

function getState(val) {
      $.ajax({
      type: "POST",
      url: "demogroup1.php",
      data:'customer_name='+val,
      success: function(data){
        $("#state-list").html(data);
        $("#state-list1").html(data);
      }
      });
    } 
0
amit sutar 25 Июн 2017 в 11:28
1
Ваш код уязвим для атак с использованием SQL-инъекций. Пожалуйста, погуглите, как использовать подготовленные операторы и параметризованные запросы с mysqli, чтобы лучше защитить себя. В настоящий момент ваш код широко открыт для взлома путем отправки злонамеренного значения (например, для имени клиента), которое может позволить кому-то украсть, повредить или удалить ваши данные.
 – 
ADyson
25 Июн 2017 в 11:43
Ну, для начала, каков фактический HTML-код, который вы отправляете обратно из ответа AJAX Call?
 – 
TimBrownlaw
25 Июн 2017 в 11:53
Здесь вам нужно либо вывести вместе Gstn и адрес биллинга со страницы ajax и заменить все содержимое div, либо использовать вывод с типом содержимого json и заполнить только необходимое поле html.
 – 
deffrin joseph
25 Июн 2017 в 12:05
Как делать с типом содержимого json @deffrinjoseph. можешь предоставить мне код?
 – 
amit sutar
26 Июн 2017 в 00:48
1
@amitsutar: стоит отметить, что Stack Overflow не является расчетной палатой для бесплатного труда. Читатели рады помочь, но обычно они не будут (и не должны) делать все это.
 – 
halfer
26 Июн 2017 в 01:32

1 ответ

Лучший ответ

При вызове Ajax

<?php
if (!empty($_POST['customer_name'])) 
{ 

  // For escaping special characters
  $customer_name = mysql_real_escape_string($_POST["customer_name"]);
  $query = mysqli_query($conn,"SELECT  customer_locations.address , customer_locations.state ,customer_locations.custLocId, customer_locations.city , customer_locations.pin , customer_locations.locality, customer_locations.gstNo ,customer_master.defaultBilling , customer_master.defaultsupply 
    FROM customer_locations INNER JOIN customer_master ON customer_locations.customerId = customer_master.customerId 
    WHERE customer_master.customerId = '" . $customer_name . "'");

  // Since we only fetch a single users data we dont need to use while loop
  $row = mysqli_fetch_array($query);


  $data=array(
    'custLocId'=>$row["custLocId"],
    'gstNo'=>$row['gstNo'],
    'defaultBilling'=>$row['defaultBilling']
    );

  header("Content-type:application/json");
  echo json_encode($data);
}
?>  

Скрипт для вызова ajax

function getState(val) {
      $.ajax({
      type: "POST",
      url: "demogroup1.php",
      data:'customer_name='+val,
      dataType:'json',
      success: function(data){
        $("#state-list1").html(data.gstNo);
        $("#state-list").html(data.defaultBilling);
      }
      });
    } 
0
deffrin joseph 28 Июн 2017 в 08:37