Извеждане на резултат(и) от checkbox

CaTaHuK

Registered
Здравейте. Имам следния проблем. Немога да изведа резултатИ от input type='checkbox'

HTML:
<form name='form1' method='post'>
<table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>
<tr ><td > </td><td ><b>Choice</b></td></tr>
<tr  ><td ><input type=checkbox name=ckb value=1 onclick='chkcontrol(0)';></td><td >PHP</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=2 onclick='chkcontrol(1)';></td><td >Perl</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=3 onclick='chkcontrol(2)';></td><td >MySQL</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=4 onclick='chkcontrol(3)';></td><td >ASP</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=5 onclick='chkcontrol(4)';></td><td >JavaScript</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=6 onclick='chkcontrol(5)';></td><td >CSS</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=7 onclick='chkcontrol(6)';></td><td >HTML</td></tr>
<tr  ><td ><input type=checkbox name=ckb value=8 onclick='chkcontrol(7)';></td><td >Photo Shop</td></tr>
</table>
<input type='submit' name='submit'>
</form>

Като извежвам
PHP:
 <?php echo $_POST['ckb']; ?>
или
PHP:
 <?php print_r($_POST); ?>
ми извежда само 1 отговор, а аз искам избирам 2 или 3 отговора.

Благодаря предварително :?:
 
Препокриват ти се трябва да го направиш като масив:
Код:
<form name='form1' method='post'>

<table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>

<tr ><td > </td><td ><b>Choice</b></td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=1 onclick='chkcontrol(0)';></td><td >PHP</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=2 onclick='chkcontrol(1)';></td><td >Perl</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=3 onclick='chkcontrol(2)';></td><td >MySQL</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=4 onclick='chkcontrol(3)';></td><td >ASP</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=5 onclick='chkcontrol(4)';></td><td >JavaScript</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=6 onclick='chkcontrol(5)';></td><td >CSS</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=7 onclick='chkcontrol(6)';></td><td >HTML</td></tr>

<tr  ><td ><input type=checkbox name="ckb[]" value=8 onclick='chkcontrol(7)';></td><td >Photo Shop</td></tr>

</table>

<input type='submit' name='submit'>

</form>

<?php print_r($_POST); ?>
 
имената на боксовете да са ckb[]
PHP:
<?php 
$post = $_POST['ckb']; 
echo "Селектирахте: ";
foreach($post as $key){
echo $key; if($key!=$post) {echo ", ";}
}
?>
 
bgspace, сега print_r($_POST) ви вади Array ( [ckb] => Array [submit] => Submit Query ), но незнам как да изкарам [ckb] => Array :cry:
 
IzKuFeLiQqQqQ каза:
имената на боксовете да са ckb[]
PHP:
<?php 
$post = $_POST['ckb']; 
echo "Селектирахте: ";
foreach($post as $key){
echo $key; if($key!=$post) {echo ", ";}
}
?>

Селектирахте:
Warning: Invalid argument supplied for foreach() in test.php on line 36.

Блоковете ми са ckb[] - LINE 36: foreach($post as $key){
 
PHP:
<?php 
if(isset($_POST['submit'])) {
$post = $_POST['ckb']; 
echo "Селектирахте: ";
foreach($post as $key){
echo $key; if($key!=$post) {echo ", ";}
//тука query-то за запис  като WHERE `idotg` = '$key'
}
}
?>

я обясни какво точно искаш да ти направя ...

EDITED
 
Понеже правя една анкета, и искам на някои въпроси да може да се посочват по няколко отговора :wink:
 
IzKuFeLiQqQqQ каза:
PHP:
<?php 
if(isset($_POST['submit'])) {
$post = $_POST['ckb']; 
echo "Селектирахте: ";
foreach($post as $key){
echo $key; if($key!=$post) {echo ", ";}
//тука query-то за запис  като WHERE `idotg` = '$key'
}
}
?>

я обясни какво точно искаш да ти направя ...

EDITED
 
Еми неработи ето ти кода

Код:
<form action='' method='post'>
	<table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>
		<tr><td></td><td ><b>Choice</b></td></tr>
		<tr><td><input type="checkbox" name="ckb[]" value="1"></td><td>1</td></tr>
		<tr><td><input type="checkbox" name="ckb[]" value="2"></td><td>2</td></tr>
		<tr><td><input type="checkbox" name="ckb[]" value="3"></td><td>3</td></tr>
		<tr><td><input type="checkbox" name="ckb[]" value="4"></td><td>4</td></tr>
		<tr><td colspan='2'><input type='submit' name='submit'></td></tr>
	</table>
</form>
<?php
if(isset($_POST['submit'])) 
{
	$post = $_POST['ckb']; 
	foreach($post as $key)
	{
		echo $key;
	}
}
?>

Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\portal\test.php on line 15
 
PHP:
<form action='' method='post'>
   <table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>
      <tr><td></td><td ><b>Choice</b></td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="1"></td><td>1</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="2"></td><td>2</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="3"></td><td>3</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="4"></td><td>4</td></tr>
      <tr><td colspan='2'><input type='submit' name='submit'></td></tr>
   </table>
</form>
<?php
if(isset($_POST['submit'])) 
{
   if(is_array($_POST['ckb'])){
          foreach($_POST['ckb'] as $key => $val)
         {
               echo $key."---".$val;
         }
    }
    else{
           foreach($_POST as $key => $val){
                echo $key."---".$val;
           }
    }
}
?>

Виж така какво ще ти изкара ?
 
PHP:
<form action='' method='post'>
   <table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>
      <tr><td></td><td ><b>Choice</b></td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="1"></td><td>1</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="2"></td><td>2</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="3"></td><td>3</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="4"></td><td>4</td></tr>
      <tr><td colspan='2'><input type='submit' name='submit'></td></tr>
   </table>
</form>
<?php
if(isset($_POST['submit'])) 
{
   if(is_array($_POST['ckb'])){
         foreach($_POST['ckb'] as $key => $val)
         {
               foreach($val as $v){
                       echo $v."<br />";
               }
         }
    }
    else{
           foreach($_POST as $key => $val){
                foreach($val as $v){
                       echo $v."<br />";
               }
           }
    }
}
?>

А така ?
 
Това е защото ако не избереш никой и не се постват боксовете това си е бъг
може да се коригира с фунциика при клика да маниполира hidden input

Но и това ти върши работа щом няма да пишеш в базата
Код:
 $post = isset($_POST['ckb']) ? $_POST['ckb']: array();
   foreach($post as $key)
   {
      echo $key;
   }
 
relax15pyt каза:
PHP:
<form action='' method='post'>
   <table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>
      <tr><td></td><td ><b>Choice</b></td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="1"></td><td>1</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="2"></td><td>2</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="3"></td><td>3</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="4"></td><td>4</td></tr>
      <tr><td colspan='2'><input type='submit' name='submit'></td></tr>
   </table>
</form>
<?php
if(isset($_POST['submit'])) 
{
   if(is_array($_POST['ckb'])){
         foreach($_POST['ckb'] as $key => $val)
         {
               foreach($val as $v){
                       echo $v."<br />";
               }
         }
    }
    else{
           foreach($_POST as $key => $val){
                foreach($val as $v){
                       echo $v."<br />";
               }
           }
    }
}
?>

А така ?

Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\portal\test.php on line 24

Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\portal\test.php on line 24
 
bgspace каза:
Това е защото ако не избереш никой и не се постват боксовете това си е бъг
може да се коригира с фунциика при клика да маниполира hidden input

Но и това ти върши работа щом няма да пишеш в базата
Код:
 $post = isset($_POST['ckb']) ? $_POST['ckb']: array();
   foreach($post as $key)
   {
      echo $key;
   }

Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\portal\test.php on line 15
 
PHP:
<form action="" method="POST">
   <table border='0' width='250' cellspacing='0' cellpadding='0' align='center'>
      <tr><td></td><td ><b>Choice</b></td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="1" /></td><td>1</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="2" /></td><td>2</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="3" /></td><td>3</td></tr>
      <tr><td><input type="checkbox" name="ckb[]" value="4" /></td><td>4</td></tr>
      <tr><td colspan='2'><input type="submit" name="submit" value="Submit" /></td></tr>
   </table>
</form>
<?php
if(isset($_POST['submit'])) 
{
	if(sizeof($_POST['ckb']) > 0){
		foreach($_POST['ckb'] as $val)
		{
			echo $val.", ";
		}
	}
}
?>

Хайте, ето... при мен си работи, само ти си го настрой, както искаш...
 

Back
Горе