Php 当从select标记触发onChange事件时,从mysql数据库加载html表

Php 当从select标记触发onChange事件时,从mysql数据库加载html表,php,javascript,mysql,html,onchange,Php,Javascript,Mysql,Html,Onchange,那么,就这么定了。我有一个要填充的html表。具体来说,第一行是用mysql数据库中的元素填充的行。确切地说,这张表是关于手机的问卷调查。第一行是从数据库中加载手机名称的标题。还有一个选择标记,其中包含公司名称作为选项。我需要在select标签上触发onChange事件来重新加载页面,并在第一行中填充当前在下拉列表中选择的公司手机的新名称。这就是我的选择几乎看起来的样子: <select name="select" class="companies" onChange="reloadPag

那么,就这么定了。我有一个要填充的html表。具体来说,第一行是用mysql数据库中的元素填充的行。确切地说,这张表是关于手机的问卷调查。第一行是从数据库中加载手机名称的标题。还有一个选择标记,其中包含公司名称作为选项。我需要在select标签上触发onChange事件来重新加载页面,并在第一行中填充当前在下拉列表中选择的公司手机的新名称。这就是我的选择几乎看起来的样子:

<select name="select" class="companies" onChange="reloadPageWithNewElements()">
<?php
    $sql = "SELECT cname FROM companies;";
$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs)) {
    echo "<option value=\"".$row['cname']."\">".$row['cname']."</option>\n  ";
}
?>
</select>

所以。。。有没有办法用onChange刷新此页面,并再次将所选值传递到同一页面,并将其分配到新的php变量中,以便我可以执行填充表所需的查询

<?php
//$mobileCompanies = $_GET["selectedValue"];
$sql = "SELECT mname FROM ".$mobileCompanies.";";
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)) { 
    echo "<td><div class=\"q1\">".$row['mname']."</div></td>";
}

?>


像这样的。(reloadPageWithNewElements()和selectedValue现在只是一个想法)

最好的选择是使用AJAX

reloadPageWithNewElements()是一个函数,它调用您自己站点的页面,该页面将返回您希望放入表中的数据

如果使用JQuery,AJAX非常容易实现:

$.ajax({
    url: '/yourPage',
    data: { selectedCompany: $('.companies').val() },
    success: function(result) {
        //delete your tablerows
        $(".classOfTable tr").remove();
        //put the result in your html table e.g.
        $('.classOfTable').append(result);
    },
    dataType: html
});
浏览器将向“/yourPage?selectedCompany=Google”或其他内容发送请求 您所要做的就是让这个页面只打印html(可能更容易的是只打印tablerow()


如果您还有任何问题,请询问。

最好的选择是使用AJAX

reloadPageWithNewElements()是一个函数,它调用您自己站点的页面,该页面将返回您希望放入表中的数据

如果使用JQuery,AJAX非常容易实现:

$.ajax({
    url: '/yourPage',
    data: { selectedCompany: $('.companies').val() },
    success: function(result) {
        //delete your tablerows
        $(".classOfTable tr").remove();
        //put the result in your html table e.g.
        $('.classOfTable').append(result);
    },
    dataType: html
});
浏览器将向“/yourPage?selectedCompany=Google”或其他内容发送请求 您所要做的就是让这个页面只打印html(可能更容易的是只打印tablerow()


如果您还有任何问题,请询问。

将值保存在隐藏的
输入中


将值保存在隐藏的
输入中


我会使用jQuery来做这件事

首先,您需要为每个选项标记添加“id”属性

<option id="option1">
<option id="option2">

等等。。。 然后使用jQuery:

$('<option>').change(function() {
   var id=$(this).attr('id');
...save data here (i.e: with ajax $.post(url, { selected_id: id}, callback }
});
$('').change(函数(){
var id=$(this.attr('id');
…在此处保存数据(即:使用ajax$.post(url,{selected_id:id},callback}
});

我会使用jQuery来做这件事

首先,您需要为每个选项标记添加“id”属性

<option id="option1">
<option id="option2">

等等。。。 然后使用jQuery:

$('<option>').change(function() {
   var id=$(this).attr('id');
...save data here (i.e: with ajax $.post(url, { selected_id: id}, callback }
});
$('').change(函数(){
var id=$(this.attr('id');
…在此处保存数据(即:使用ajax$.post(url,{selected_id:id},callback}
});

我更喜欢get方法解决方案。我知道这是最优的,但我对AJAX一无所知。像这样?:$。get或完全不使用jquery?我更喜欢get方法解决方案。我知道这是最优的,但我对AJAX一无所知。像这样?:$。get或完全不使用jquery?