如何使用php获取(调用)动态生成的变量值以保存在(mysql)数据库中
我试图保存我的动态生成的复选框的值,标签和选择标签在mysql数据库中使用php在这个标签中我从不同的数据库检索值,我试图保存带有标签值和选择选项值的选中字段的数据,但我不能这样做,请建议我哪里做错了如何使用php获取(调用)动态生成的变量值以保存在(mysql)数据库中,php,javascript,html,mysql,database,Php,Javascript,Html,Mysql,Database,我试图保存我的动态生成的复选框的值,标签和选择标签在mysql数据库中使用php在这个标签中我从不同的数据库检索值,我试图保存带有标签值和选择选项值的选中字段的数据,但我不能这样做,请建议我哪里做错了 <script language="javascript"> function getmatchplayer1(mid) { window.location="?mid="+mid;
<script language="javascript">
function getmatchplayer1(mid)
{
window.location="?mid="+mid;
}
</script>
</head>
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
// select database on server
mysql_select_db("$db_name")or die("cannot select DB");
if(isset($_POST['SaveTeam'])){
$tmnmA = $_POST['TeamNameA'];
$tmnmB = $_POST['TeamNameB'];
$mch_id = $_POST['mtch_id'];
$chk_id = $_POST['$chkid'];
$cric_nm = $_POST['$ply_nm'];
$chk_rnk = $_POST['$chkrnk'];
$sqlbat = "INSERT INTO board(cricketer_id, status,Runs,Sixes,Fifty,Hundred,Total_Score,Total_Points)VALUES('$cric_nm', 'NP','0','0','0','0','0','0')";
$retval = mysql_query( $sqlbat );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
}
$sql=mysql_query( "SELECT * FROM tbl_info LIMIT 5");
$cric_id = $resultmp['player_id'];
?>
<body style="align:center">
<form method="post" id="form1" name="form1" action="">
<div style="width:850px; margin-left:55px; text-align:right">
<input type="submit" id="SaveTeam" name="SaveTeam" value=" Save " />
</div>
<table align="center" width="900" height="auto" style="border-top:1px solid #CCCCCC;border-right:1px solid #CCCCCC; border-left:1px solid #CCCCCC; cellspacing:0px; cellpadding:0px;">
<tr style="border:1px solid #CCCCCC">
<td width="450" style="border:1px solid #CCCCCC"> Today's Match:-
<select name="mtch_id" id="mtch_id" onchange="getmatchplayer1(this.value)">
<option> Select Team </option>
<?php
$i=1;
$sqlm=mysql_query("SELECT * FROM t_match LIMIT 5");
while ($resultm=mysql_fetch_array($sqlm))
{
$mtch=$resultm['match_no'];
echo "<option id='".$i."' value='".$mtch."'>";
echo $mtch;
echo "</option>";
$i++;}
?>
</select></td>
<td width="450" style="border:1px solid #CCCCCC">
<?php
$j=1;
if (isset($_REQUEST['mid']))
{
$mid=$_REQUEST['mid'];
}
$sqlm1=mysql_query("SELECT * FROM t_match WHERE match_no = '$mid'");
while ($resultm1=mysql_fetch_array($sqlm1)){
$mtch=$resultm1['match_no'];
$mtch1=$resultm1['team1'];
$mtch2=$resultm1['team2'];
$chkid = 'a'.$a;
?>
</td>
</tr>
<tr style="border:1px solid #CCCCCC">
<td style="text-align:center; border:1px solid #CCCCCC">
<?php
echo "Team - ".$mtch1;
?>
</td>
<td style="text-align:center; border:1px solid #CCCCCC">
<?php
echo "Team - ".$mtch2;
}
?>
</td>
</tr>
<tr>
<td height="auto" colspan="2">
<div id="update" style="width:900px; height:24px;">
<div style="float:left; width:450px; height:24px;">
<?php
$a=1;
$b=2;
$k=1;
$sqlmp=mysql_query("SELECT * FROM tbl_info WHERE player_team = '$mtch1' LIMIT 5");
while ($resultmp=mysql_fetch_array($sqlmp)){
echo "<SCRIPT LANGUAGE='JavaScript'>
//on checked disabled enabled condition
function codenameA".$a."()
{
if (document.form1.a".$a.".checked)
{
document.form1.b".$a.".disabled = false;
}
else
{
document.form1.b".$a.".disabled = true;
}
}
/*Condition for limit the checked up to 11 for team A*/
//initial checkCount of zero
var checkCount = 0
//maximum number of allowed checked boxes
var maxChecks = 11
function setChecksA".$a."(obj)
{
//increment/decrement checkCount
if (obj.checked)
{
checkCount=checkCount+1
}
else
{
checkCount=checkCount-1
}
//if they checked a 11th box, uncheck the box, then decrement checkcount and pop alert
if (checkCount>maxChecks)
{
obj.checked=false
document.form1.b".$a.".disabled=true;
checkCount=checkCount-1
alert('you may only choose up to '+maxChecks+' options')
}
}
//-->
</script>";
?>
<div style="float:left; width:80%; height:24px; border:1px solid #CCCCCC">
<input onclick='codenameA<?php echo $a; ?>(), setChecksA<?php echo $a; ?>(this)' type='checkbox' id='a<?php echo $a; ?>' name='a<?php echo $a; ?>' value='<?php echo $resulttmp['player_id']; ?>' /><input type="hidden" id="lt<?php $a; ?>" name="lt<?php $a; ?>" value="<?php echo $resulttmp['player_name']; ?>" /> <?php echo $resultmp ['player_name']; ?>
</div>
<div style="float:right; width:19%; height:24px; border:1px solid #CCCCCC">
<select disabled='disabled' id='b<?php echo $a; ?>' name='b<?php echo $a; ?>' style='width:100%;'>
<option>
- -
</option>
<option value='1'>
1
</option>
<option value ='2'>
2
</option>
<option value='3'>
3
</option>
<option value='4'>
4
</option>
<option value='5'>
5
</option>
<option value='6'>
6
</option>
<option value='7'>
7
</option>
<option value='8'>
8
</option>
<option value='9'>
9
</option>
<option value='10'>
10
</option>
<option value='11'>
11
</option>
</select>
</div>
<?php
$a++;
$b++;
}
?>
</div>
</td>
</tr>
</table>
</form>
函数getmatchplayer1(mid)
{
window.location=“?mid=“+mid;
}
如果我理解正确,您将使用$a增量变量以友好方式生成输入的名称。但由于某些原因,在发布时无法重新计算这些名称,因此无法获取发布的值。您可以通过多种方式解决此问题,一种是通过以下方式生成输入名称:
<input type="checkbox" name="blah[$a]"/>
<select name="bleh[$a]">...</select>
你可以用一个简单的foreach解析
foreach ($_POST["blah"] as $a => $value) {
...
}
foreach ($_POST["bleh"] as $a => $value) {
...
}
我不太理解启用/禁用逻辑,正如我之前所说,这是一些混乱的代码,但是您应该知道禁用的字段不会被发布
PS:我发布的代码是伪代码。这段代码非常混乱,因此很难帮助您,但是您是否发布了名为$chkrnk的值?PHP不计算“封装字符串”中的变量。为什么您不能这样做?是什么导致了问题?错误?@AneeshDogra我正在尝试获取复选框、标签和选择框的值,但其id/名称正在动态生成,因此无法获取确切的变量id/名称。要保存到数据库中,您是否阅读了@Cernunos的评论?@Cernunos我在“封装字符串”之外尝试了它,但没有得到标签的确切值。我尝试了这个方法,但我使用了[$a]名称作为复选框和b[$]选择它的名称显示空白数组。当您提交表单时,它们是否被禁用?当我单击复选框时,否@cernunnos,然后下拉获取启用,然后在我尝试保存复选框和下拉列表的值后。检查生成的HTML,检查它是否为有效的HTML,并查看输入的名称(名称如[0]名称必须是唯一的,如[]不)。同时放置一个var_dump($_POST)来检查表单发布的内容。如果我使用。。。像这样,它不显示任何增量值,只显示name=“bleh[]”,如果我使用它
foreach ($_POST["blah"] as $a => $value) {
...
}
foreach ($_POST["bleh"] as $a => $value) {
...
}