在另一页上捕获php复选框值

时间:2014-02-23 07:42:29

标签: php

我有一个从数据库创建的动态复选框。这里的数量文本框是一个示例代码:

$query="SELECT name,price FROM product";
$result=mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$name=mysql_result($result,$i,"name");
$price=mysql_result($result,$i,"price");

echo "<form name='waz' action='calculate2.php' method='post'>
<br>
<input type='checkbox' name='$name' value='$name; '/> $name
<input type='text' name='$name'/>
<br>";$i++;
} echo "<input type='submit' value='calculate'/>"; ?><br>

如何捕获 calculate2.php 页面上的文本框复选框值,并将每个复选框和文本框值保存为不同的变量。请帮忙

4 个答案:

答案 0 :(得分:0)

试试这个

$query="SELECT name,price FROM product";
$result=mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$name=mysql_result($result,$i,"name");
$price=mysql_result($result,$i,"price");

echo "<form name='waz' action='calculate2.php' method='post'>
<br>
<input type='checkbox' name='check$i' value='$name; '/> $name
<input type='text' name='text$i'/>
<br>";$i++;
} 
echo "<input type='submit' value='calculate'/>";
echo "<input type='hidden' value='$i' name='count'/>";

   ?><br>

在calculate.php中

$count=$_POST["count"];
for($i=0;$i<count;$i++){
    $name="check" . $i;
    $checkvalue=$_POST[$name];
    $text="text" . $i;
    $textvalue=$_POST[$textvalue];
    //savetodatabase
}

答案 1 :(得分:0)

HTML

<form action="process.php" method="post">
<input type="text" name="myText" />
<input type="checkbox" name="myCheck" value="someVal" />
<input type="sumbit" />
</form>

Process.php

$myTextVar = $_POST['myText'];
$myCheckVar = $_POST['myCheck'];

$_POST[]数组会填充发送到脚本的任何发布数据,或者,您可以使用get方法,并使用$_GET[]数组。

索引名称来自HTML表单中提供的名称。

文本框的值来自用户输入的内容。复选框中的值来自您在标记中设置的任何值。

答案 2 :(得分:0)

试试这个(它使用我在评论中提到的输入数组):

$query="SELECT name,price FROM product";
$result=mysql_query($query);
$num_rows = mysql_num_rows($result);
if($num_rows>0){

    echo "<form name='waz' action='calculate2.php' method='post'>";
    while($row=mysql_fetch_array($result)){
        echo "<br>
        <input type='checkbox' name='name[]' value=".$row['name']." > ".$row['name']."
        <input type='text' name='text[]' >
        <br>";

    }
    echo "<input type='submit' name='submit' value='calculate'/>";
    echo "</form>";
}

编辑:

calculate2.php

if(isset($_POST['submit'])){

    if(isset($_POST['name'])){
      foreach($_POST['name'] as $key=>$val){
       echo $val; //this will return all checked values
      }
    }

    //Similarly for $_POST['text']
      foreach($_POST['text'] as $key=>$val){
       echo $val; //this will return all textbox values - you may need to check if they are empty
      }

}

答案 3 :(得分:0)

尝试这样:

echo "<form name='waz' action='calculate2.php' method='post'>
<br>";
while ($i < $num) {
 $name=mysql_result($result,$i,"name");
 $price=mysql_result($result,$i,"price");
 echo"
 <input type='checkbox' name='chk[]' value='$name; '/> $name
 <input type='text' name='txt[]' value='$name'/>
  <br>";$i++;
} 
echo "<input type='submit' value='calculate'/>"; ?><br>

calculate2.php

您将拥有所有文字输入的数组:

$arrText =  $_POST['txt'];

您将拥有所有复选框输入的数组:

arrChk = $_POST['chk'];

然后您可以获得每个文本和复选框值,例如:

   $firstTxt = $arrText[0];
   $firstchk = $arrchk[0];