Выберите HTML изменить другой выберите HTML из функции обмена

0

У меня есть select html, который содержит select sql statement. Позвольте называть это Select A. Если для выбора значения A выбрано значение A, выберите B и выберите C, в зависимости от данных выберите Select a select sql statement. Метод, который я пытался и не удалось, вращается вокруг, используя onchange на Select A. Затем он вызывает функцию. Однако эта функция должна считываться из переменной php, чтобы получить значение. Но мы знаем, что PHP не работает в javascript.

Еще один метод, который я могу придумать, - снова использовать функцию обновления окна при замене Select A. Обновленная страница будет тогда $ _GET значением из ссылки url (например: terminalassign.php?id=1&terminalposition=here&...) Но снова он использует onchange и, следовательно, не может получить значение PHP в javascript.

У кого-нибудь есть идея об этом?

Это мой код:

Функция onchange

<script language="Javascript" type="text/javascript">
  function terminalupdate() {
    var terminalposition = <?php echo (json_encode($terminalposition)) ;?>
    var terminalstatus = <?php echo (json_encode($terminalstatus)); ?>
    document.getElementById("terminalposition").value=terminalposition;
    document.getElementById("terminalstatus").value=terminalstatus;
  }
</script>

тело

        <td><p id="spacing" align="left">Terminal ID</p></td>
            <?php
            $sql2 = "SELECT * FROM terminal WHERE merchantid IS NULL ORDER BY terminalaccountno ASC";
            $RS2 = mysql_query($sql2, $db);
            $rows = array();
            while ($row = mysql_fetch_array($RS2))
                $rows[] = $row;
            ?>
            <td id="spacing" style="padding-left:100px">
                <select name="terminalid" onchange="terminalupdate()" required>
             <?php
            foreach ($rows as $row) {
             echo "<option value='$row[terminalid]'>$row[terminalaccountno]</option>";
             $terminalstatus = $row['terminalstatus'];
             $terminalposition = $row['terminalposition'];
            }
             ?>
                </select>
                <?php if (!empty($merchantaddresserror)): ?><br>
                    <span class="spanstyle"><?php echo $merchantaddress;?></span>
                <?php endif; ?><br>
            </td>
        </tr>
        <tr>
            <td><p id="spacing" align="left">Status</p></td>
            <td id="spacing" style="padding-left:100px">
                <select name="terminalstatus" id="terminalstatus" required>
                    <option value="" <?php if($terminalstatus=="") echo 'selected="selected"'?>> </option>
                    <option value="active" <?php if($terminalstatus=="active") echo 'selected="selected"'?>>Active</option>
                    <option value="inactive" <?php if($terminalstatus=="inactive") echo 'selected="selected"'?>>Inactive </option>
                    <option value="lost" <?php if($terminalstatus=="lost") echo 'selected="selected"'?>>Lost</option>
                </select>
            </td>
        </tr>
        <tr>
            <td><p id="spacing" align="left">Terminal Position</p></td>
            <td id="spacing" style="padding-left:100px">
                <select name="terminalposition" required>
                    <option value="" <?php if($terminalposition=="") echo 'selected="selected"'?>> </option>
                    <option value="Deployed" <?php if($terminalposition=="Deployed") echo 'selected="selected"'?>>Deployed</option>
                    <option value="Used By Developer" <?php if($terminalposition=="Used By Developer") echo 'selected="selected"'?>>Used By Developer</option>
                    <option value="Sent For Repair" <?php if($terminalposition=="Sent For Repair") echo 'selected="selected"'?>>Sent For Repair</option>
                    <option value="Write-Off" <?php if($terminalposition=="Write-Off") echo 'selected="selected"'?>>Write-Off</option>
                    <option value="Stolen" <?php if($terminalposition=="Stolen") echo 'selected="selected"'?>>Stolen</option>
                </select>
  • 0
    используйте вызов ajax при изменении SelectA, чтобы обновить значения Select B и C. В этом случае вам не нужно беспокоиться о get и других
  • 0
    В моем случае, как применить вызов ajax?
Показать ещё 4 комментария
Теги:

1 ответ

0

Таким образом, с помощью Ajax это может быть проще

Сначала вызовите функцию JavaScript при изменении первого раскрывающегося списка, содержащего вызов ajax.

function loadData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      // populate both dropdown using result of getData.php file
      // You can acccess the values using this.responseText.dropdown2 and this.responseText.dropdown3
      console.log(this.responseText);
    }
  };
  xhttp.open("GET", "getData.php?param=abc", true);
  xhttp.send();
}

В файле getData.php: -

<?php
  $param = $_GET['param'];  // will give you 'abc'
  //mysql queries goes here and get result for second and third dropdown 
  //then echo the result of the query.
  echo array('dropdown2'=>$dropdown2, 'dropdown3'=>$dropdown3);
?>
  • 0
    почему this.readyState == 4 && this.status == 200? И может ли параметр быть определен пользователем как merchantid = $ merchantid?
  • 0
    И даже если я this.responseText.dropdown2 доступ к значениям, используя this.responseText.dropdown2 , как мне поместить его обратно на document.getElementById("terminalposition").value=terminalposition; Должен ли я использовать это: document.getElementById("terminalposition").this.responseText.dropdown2 ; Извините, но этот AJAX сбивает меня с толку
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню