生成两个选择选项框无法正常工作

时间:2014-05-17 09:05:51

标签: mysql sql

在我的HTML中,我有两个用PHP生成的选择框。第二个选择框(loadscripts)中的选项需要从第一个选择框(vbox)的输入生成。

<div class="style-selected">
        <form id="select_vbox" name="select_vbox" method="post" action="<?php echo($_SERVER["PHP_SELF"]);?>">
          <h1>Virtualboxes</h1>;
          <select class="styled-select" id="vboxes" name="vboxes" size="15">;
          <?php
            $virtualbox = mysql_query("SELECT * FROM Virtualbox WHERE user_id = ".$_SESSION['user_id']);
            while($select = mysql_fetch_array($virtualbox)){
              echo("<option value=" . $select["titel"] . ">" . $select["titel"] . "</option>");
            }
            echo("</select>");

            echo("<h1>Loadscripts</h1>");
            echo("<select class=\"styled-select\" id=\"loadscripts\" name=\"loadscripts\" size=\"15\">");

            echo("</select>");

          ?>
          <p><input type="submit" name="submit" value="OK"></p>
        </form>
        </div>

然后我有一些名为ajax-getvalues.php的PHP代码:

<?php
$connection = mysql_connect(host, username, password);
mysql_select_db($connection, db);

$selectvalue = mysql_real_escape_string($connection, $_GET['svalue']);

$result = mysql_query("SELECT loadscriptnaam FROM Loadscripts WHERE vbox_md5 = 'jn12jcbhwer34hbhj32b4j'");

echo '<option value="">Please select...</option>';
while($row = mysql_fetch_array($result))
  {
    echo '<option value="'.$row['loadscriptnaam'].'">' . $row['loadscriptnaam'] . "</option>";
  }

mysql_free_result($result);
mysql_close($connection);
?>

最后我的HTML中有一些jquery:

$(document).ready(function($) {
  var list_target_id = 'loadscripts'; //first select list ID
  var list_select_id = 'vboxes'; //second select list ID
  var initial_target_html = '<option value="">Selecteer een virtualbox...</option>'; //Initial prompt for target select

  $('#'+list_target_id).html(initial_target_html); //Give the target select the prompt option

  $('#'+list_select_id).change(function(e) {
    //Grab the chosen value on first select list change
    var selectvalue = $(this).val();

    //Display 'loading' status in the target select list
    $('#'+list_target_id).html('<option value="">Een moment geduld...</option>');

    if (selectvalue == "") {
        //Display initial prompt in target select if blank value selected
       $('#'+list_target_id).html(initial_target_html);
    } else {
      //Make AJAX request, using the selected value as the GET
      $.ajax({url: 'ajax-getvalues.php?svalue='+selectvalue,
             success: function(output) {
                //alert(output);
                $('#'+list_target_id).html(output);
            },
          error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status + " "+ thrownError);
          }});
        }
    });
});

问题是第二个选择框没有返回任何数据。

1 个答案:

答案 0 :(得分:0)

您有错误顺序的某些mysql函数的参数 - 您正在使用它们,就好像它们是类似的mysqli函数一样。

$connection = mysql_connect(host, username, password);
mysql_select_db(db, $connection);

$selectvalue = mysql_real_escape_string($_GET['svalue'], $connection);

mysql中,连接参数是可选的(默认为最后一个连接打开),因此它始终是最后一个。

您的查询应该是:

$result = mysql_query("SELECT loadscriptnaam FROM Loadscripts WHERE vbox_md5 = '$selectvalue'") or die(mysql_error());

请注意$selectvalue周围的引号,假设它是一个字符串。