Заполните поле запроса mysql на основе введенной пользователем переменной - PullRequest
0 голосов
/ 11 июля 2019

В Wordpress, использующем плагин Ninjaform, у меня есть пользовательские функции, которые запрашивают мою базу данных mysql, я хотел бы иметь возможность запрашивать базу данных для кода поставщика, основываясь на выпадающем списке пользователя, выбирающем имя поставщика, без необходимости страницы для обновить.

Вот куда я попал в functions.php. Первая часть функции выводит имя поставщика в раскрывающийся список, который работает, как и ожидалось. Вторая часть функции - это моя попытка заполнить код поставщика на основе переменной $ supplier, но вместо этого поле возвращается пустым, когда пользователь выбрал имя поставщика.

<?php
add_filter('ninja_forms_render_options','my_pre_population_callback', 10, 2);
function my_pre_population_callback($options, $settings) {

if( $settings['key'] == 'supplier_list' ) {

     $connection = mysqli_connect( "serverip:port", "username", "password", "db" );
     if (!$connection) {  die('Not connected : ' . mysqli_error());}

     $query = "SELECT SUP_Name FROM sup_supplier ORDER BY SUP_Name ASC";
     $results = mysqli_query($connection,$query);
     if (!$results) {
          die('Invalid query: ' . mysqli_error());
      }

     $options = array();
     $options[] = array("label" => "N/A", "value" => "");
     while($row = mysqli_fetch_assoc($results))
     { $options[] = array ('label' => $row['SUP_Name'],'value' => $row['SUP_Name'] ); }

    wp_reset_postdata();
  }

if( $settings['key'] == 'supplier_code' ) {

     $connection = mysqli_connect( "serverip:port", "username", "password", "db" );
     if (!$connection) {  die('Not connected : ' . mysqli_error());}

     $supplier = $_GET['SUP_Name'];  

     $query = "SELECT SUP_AccountNo FROM sup_supplier WHERE SUP_Name = '".$supplier."' ORDER BY SUP_Name ASC";
     $results = mysqli_query($connection,$query);
     if (!$results) {
          die('Invalid query: ' . mysqli_error());
      }

     $options = array();
     while($row = mysqli_fetch_assoc($results))
     { $options[] = array ('label' => $row['SUP_AccountNo'],'value' => $row['SUP_AccountNo'] ); }

    wp_reset_postdata();
  }


  return $options;
  mysqli_close($con);
?>

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

Любая помощь, как всегда, будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...