webForumDet fria alternativet

Formulärvarden igen?

PHPur PHP

2 svar · 305 visningar · startad av eklof00

Medlem sedan jan. 200737 inlägg
Frågan#1

Så här ser koden ut Nu. Det fungerar så länge det är en match som skall registreras.

Ibland radas fler matcher upp. Då fungerar inte radioknapparna. Man skall ju kunna markera en per rad. Nu markeras en av alla och då blir det fel i registreringen.

Måste jag göra en array för dessa värden?

<?php 
session_start(); // Alltid överst på sidan 

include "conn.php"; // Databasanslutningen 

// Kolla om inloggad = sessionen satt 
if (!isset($_SESSION['sess_date'])){ 
  header("Location: test.php"); 
  exit; 
} 
if (!isset($_SESSION['sess_user'])){ 
  header("Location: index.php"); 
  exit; 
} 
if (isset($_POST['submit'])) {
    $i = 0;
    foreach($_POST['tips'] as $tips) {
        $sql = "INSERT INTO spel_allsv2007 (user_id, match_id, tips) VALUES('{$_SESSION['sess_user_id']}','{$_POST['match_id'][$i]}','{$_POST['tips'][$i]}')"; 
        mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
        $i++;
    }
     header("Location: user_tips.php"); 
     exit;
}

?> 
<form action="spel.php" method="post" name="submit"> 
<?PHP 
$sql = "SELECT * FROM allsv2007 WHERE date > CURRENT_TIMESTAMP() AND date = ' {$_SESSION['sess_date']} '" or die(mysql_error()); 
$result = mysql_query($sql); 
   while ($row = mysql_fetch_assoc($result)) { 
$date[$row['date']][] = array($row['match_id'], $row['matcher']); 
} 

if (isset($date) && !empty($date)) { 
      echo '<table>';   
      foreach ($date as $day => $value){ 
          echo '<tr>'; 
         echo '<td></td>'; 
         echo '<td>' . '<b>' . $day. '</b>' . '</td>'; 
         echo '<td align="center"><b>1</b></td>'; 
         echo '<td align="center"><b>X</b></td>'; 
         echo '<td align="center"><b>2</b></td>'; 
      echo '</tr>'; 
       
        foreach ($value as $game) 
       { 
        echo '<tr>'; 
        echo '<td align ="right">'. $game[0].'.</td>'; 
      
      
         echo '<td>'. $game[1].'</td>'; 
         echo  '<td><input type="radio" value="1" name="tips[]"></td> 
                 <td><input type="radio" value="X" name="tips[]"></td> 
                 <td><input type="radio" value="2" name="tips[]"><input type="hidden" name="match_id[]" value="'.$game[0].'"></td>'; 
         echo '</tr>'; 
         
          } 

} 
echo '</table>'; 

}else{ 
echo 'Du kan inte spela på denna match, Spelstopp har inträtt!'; 

} 
?> 
<input type="submit" name="submit" value="Skicka"> 
</form>
Medlem sedan juni 20006 032 inlägg
#2

Ska du kunna bocka i mer än en match så får du byta till checkboxes istället för radiobuttons.

Medlem sedan jan. 200737 inlägg
#3

Med denna kod får jag felmeddelande:

Warning: Invalid argument supplied for foreach() in C:\wamp\www\spel.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\spel.php:17) in C:\wamp\www\spel.php on line 22

<?php 
session_start(); // Alltid överst på sidan 

include "conn.php"; // Databasanslutningen 

// Kolla om inloggad = sessionen satt 
if (!isset($_SESSION['sess_date'])){ 
  header("Location: test.php"); 
  exit; 
} 
if (!isset($_SESSION['sess_user_id'])){ 
  header("Location: index.php"); 
  exit; 
} 
if (isset($_POST['submit'])) {
    $i = 0;
foreach($_POST['tips'] as $tips) {
        $sql = "INSERT INTO spel_allsv2007 (user_id, match_id, tips) VALUES('{$_SESSION['sess_user_id']}','{$_POST['match_id'][$i]}','{$_POST['tips_'.$_POST['match_id'][$i]]}'))"; 
        mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
        $i++;
    }
     header("Location: user_tips.php"); 
     exit;
}

 ?> 
<form action="spel.php" method="post" name="submit"> 
<?PHP 
$sql = "SELECT * FROM allsv2007 WHERE date > CURRENT_TIMESTAMP() AND date = ' {$_SESSION['sess_date']} '" or die(mysql_error()); 
$result = mysql_query($sql); 
   while ($row = mysql_fetch_assoc($result)) { 
$date[$row['date']][] = array($row['match_id'], $row['matcher']); 
} 

if (isset($date) && !empty($date)) { 
      echo '<table>';   
      foreach ($date as $day => $value){ 
          echo '<tr>'; 
         echo '<td></td>'; 
         echo '<td>' . '<b>' . $day. '</b>' . '</td>'; 
         echo '<td align="center"><b>1</b></td>'; 
         echo '<td align="center"><b>X</b></td>'; 
         echo '<td align="center"><b>2</b></td>'; 
      echo '</tr>'; 
       
        foreach ($value as $game) 
       { 
        echo '<tr>'; 
        echo '<td align ="right">'. $game[0].'.</td>'; 
      
      
         echo '<td>'. $game[1].'</td>'; 
         echo '<td><input type="radio" value="1" name="tips_'.$game[0].'"></td> 
                 <td><input type="radio" value="X" name="tips_'.$game[0].'"></td> 
                 <td><input type="radio" value="2" name="tips_'.$game[0].'"><input type="hidden" name="match_id[]" value="'.$game[0].'"></td>'; 
         echo '</tr>'; 
         
          } 

} 
echo '</table>'; 

}else{ 
echo 'Du kan inte spela på denna match, Spelstopp har inträtt!'; 

} 
?> 
<input type="submit" name="submit" value="Skicka"> 
</form>
130 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)