好吧,这一直困扰着我。我正在尝试创建一个能够跟踪积分的系统。首页出现在页面上的是一个下拉菜单,您可以从中选择一个组。该组匹配可在数据库中找到的组。选择其中一个组后,组成员将显示在表格中。该表有几列,每个列(除了名称列)包含一个复选框。单击这些复选框中的一个(或几个)并提交表单后,我希望将与这些复选框相对应的点添加到数据库中,并显示同一组人员(因此应清除所有复选框,并且下拉菜单仍应具有相同的值。)
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多个小时的解决方案,所以我希望有人有一个很好的建议来解决这个问题。
答案 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你很容易理解它。