无法使用下拉菜单提交表单

时间:2013-08-28 23:36:47

标签: php javascript jquery html ajax

好吧,这一直困扰着我。我正在尝试创建一个能够跟踪积分的系统。首页出现在页面上的是一个下拉菜单,您可以从中选择一个组。该组匹配可在数据库中找到的组。选择其中一个组后,组成员将显示在表格中。该表有几列,每个列(除了名称列)包含一个复选框。单击这些复选框中的一个(或几个)并提交表单后,我希望将与这些复选框相对应的点添加到数据库中,并显示同一组人员(因此应清除所有复选框,并且下拉菜单仍应具有相同的值。)

Ajax可能是解决这个问题的最好方法,但不幸的是,我没有使用Ajax的经验,所以我只是使用php和一些javascript。我会尝试尽可能少地发布编码。

这会创建下拉菜单:

echo "<form method=\"post\" action=\"page.php">";
echo "</br><select name=\"squad\" id=\"squad\" onchange=\"changeSquad(this.value)\">";
while($row = mysql_fetch_array($result))
  {
  echo "<option value='". $row['squad_id'] . "'>" . $row['name'] . "</option>";   
  }
echo "</select>";

函数changeSquad()然后打开请求数据的文件&amp;表已创建:

if($query_run = mysql_query($query)){
    $length=0;    
     echo "<table id='form'><tr>
     <td>Member</td>
     <td>1st box</td>
     </tr>";
require 'nextfile.php';
}

这个'nextfile.php'包含大部分复选框处理,设置指向它们,将数据添加到数据库等等。它最重要的是:

echo "</form><tr><td><input type='submit' name='submit' id='submit' value='Submit' /></td></tr>";
if(isset($_POST['submit'])){
-- Do all updates --
echo "<script> alert('Points have been updated!'); </script>";
}

我已经尝试在提交按钮后添加此内容:

echo "<input type=\"hidden\" name=\"submitted\" id=\"submitted\" value=\"true\" />";

这确实提交了分数(显然是在对其他文件进行了一些调整之后),但是不会让下拉菜单中的其他组显示出来,而只是删除整个表格中的复选框应该是。(显示的是下拉菜单,其中包含先前选择的组,成员名称和大量复选框)

有人可以帮帮我吗?我已经尝试了20多个小时的解决方案,所以我希望有人有一个很好的建议来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我拍了你的脚本: 1st输出DB

中的值
<select name="squa" id="squad">
while($row = mysql_fetch_array($result))
  {
  echo '<option value="'.$row['squad_id'].'">'.$row['name'].'</option>';   
  }
</select>

使用Ajax并不复杂:           //当更改调用Ajax请求时

 $( "#squad" ).change(function() {
        var string = 'value='+$(this).val();  //value=to value of selected
        $.ajax({
       type: 'POST',
       data: string, //our value
       url:url, //where to make request
       beforeSend: function() { $('#somediv').html('Loading...'); },
       success:function(data){
          $('#somediv').html('').hide(); 
          $('#somediv').html(data); 
       },complete: function() {;
          $('#somediv').show();
        },error: function(){

    }
    });
});

在Url中(Php文件) 把你的桌子拿出来:

下一个文件

$value = $_POST['value']; //GET THe value that has been choosen in select
// do whatever you want to do with this value in php and the result just

echo $result;

如果要重新运行数组

In Jquery $.ajax specify it dataTYpe:'json',
In php:
$result = array(
   'st'=>$value,
   'mp'=>$value
);
echo json_encode($result);

在Jquery中运行thorugh数组 使用

 $('#somediv').html(data.mp+' - '+data.st);

它将自动显示在#somediv ...

的页面上

我给了一个想法尝试谷歌更多关于jquery你很容易理解它。