在我的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);
}});
}
});
});
问题是第二个选择框没有返回任何数据。
答案 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
周围的引号,假设它是一个字符串。