这是我到目前为止所做的。我用AJAX打印一些复选框和一些文本输入。 1个复选框和1个输入文本(来自数据库)。带数组的输入类型文本
问题是当我将数据提交给另一个php文件时,我只能在某些情况下看到这两个文件。 下面是我会解释更多的代码。
PHP通过AJAX
称为if($_GET['function']=="chkplayers")
{
$sql=mysql_query("SELECT * FROM tbl_Player ORDER BY team_name")
or die(mysql_error());
$i = 1;
echo'Players : ';
echo '<br>';
while ($row = mysql_fetch_array($sql)) {
echo '<input type="checkbox" name="chk_player[]" value="'.$row['player_id'].'" /> '.$row['player_name'].' in team '.$row['team_name'];
echo '<input type="text" name="chk_target[]" placeholder="Target Name"/><br/>';
$i++;
}
}
PHP呼吁提交
if (isset($_POST['chk_player']) && isset($_POST['chk_player'])) {
$optionArray = $_POST['chk_player'];
$optionArrayTarget = $_POST['chk_target'];
for ($i=0; $i<count($optionArray); $i++) {
echo "i :";
echo $i;
echo "Player : ";
echo $optionArray[$i];
echo "Target : ";
echo $optionArrayTarget[$i];
echo '<br>';
}
}
如果我连续检查每一个盒(未离开之间的空白复选框),它显示了罚款。
例子:
i :0Player : 15Target : A1
i :1Player : 18Target : A2
i :2Player : 14Target : A3
如果我留下一个未选中状态,然后检查一些我得到这个
i :0Player : 15Target : A2
i :1Player : 16Target :
反正办法可以解决这一问题?
如果我找$ optionArrayTarget我得到
i :0Player : 15Target : A1
i :1Player : 14Target :
i :2Player : 12Target : A2
i :3Player : 13Target :
i :4Player : Target : A3
i :5Player : Target : A4
i :6Player : Target :
i :7Player : Target :
编辑我的问题。如果我循环optionArrayTarget我明白了。发生这种情况是因为chk_player获得了第一个选中状态,而不是选中哪一个被选中了我猜 – LefterisL
@TerisL:我已经编辑了答案。 – dreamweiver
不幸的是它也无法工作。我设法弄清楚了。 基本上我使用'array_filter'首先删除空值然后'array_values'重新排序他们和vuala。谢谢你的ime – LefterisL