Avatar billede torstein Novice
29. november 2004 - 15:54 Der er 2 kommentarer og
1 løsning

Overfør rigtige variabler fra checkbox[]

Flg. opdater den første ledige tid på dag 1 i stedet for den valgte tid. Hvor ligger fejlen.

----klip 1 (uddrag)-----
<form method="POST" action="side2.php" name="minform">
<td align=center style="border: 1px solid #006699;"><?php print $day2; ?> <br>[<?php print $day; ?>]<br>
<table cellspacing="0" cellpadding="2" border="0">
<?for($y=0; $y < 24; $y++) {
$yx=$y+1;?>
<tr><td>
<?
$result = mysql_query("SELECT * FROM tbl_booking where dato = '$day' AND time = '$y'") or die(mysql_error());
$number = mysql_num_rows($result);
if ($number == 0){?>
<div align="center"><? print sprintf("%02d",$y)." - ".sprintf("%02d",$yx);?>
<input name="box[]" type="checkbox" value="1" onclick="document.getElementById('skjulVis_<?php print $day3.$y; ?>').style.display=(this.checked)?'block':'none'"></div>
<div id='skjulVis_<?php print $day3.$y;?>' style="display:none">
<input type="text" name="txt[]" value="">
<input type="hidden" name="day[]" value="<?=$day;?>">
<input type="hidden" name="time[]" value="<?=$y;?>">
<input type="hidden" name="year[]" value="<?=$year;?>">
<input type="hidden" name="week[]" value="<?=$week;?>">

</div>
---slut klip 1----

----klip 2-----

<?php
include ("sql.php");
if (isset($_POST['txt']) && isset($_POST['day']) && isset($_POST['week']) && isset($_POST['year']) && isset($_POST['time']) && isset($_POST['box'])){

for($c=0; $c < count($_POST['box']); $c++) {
    if ($_POST['box'][$c] != "") {
        $tmp_box = $_POST['box'][$c];
        $tmp_txt = $_POST['txt'][$c];
        $tmp_year = $_POST['year'][$c];
        $tmp_day = $_POST['day'][$c];
        $tmp_week = $_POST['week'][$c];
        $tmp_time = $_POST['time'][$c];
           
    $check = mysql_query("SELECT * from tbl_booking where year like '$tmp_year' AND week LIKE '$tmp_week' AND time LIKE '$tmp_time' AND dato LIKE '$tmp_day'") or die(mysql_error());
    $number_check = mysql_num_rows($check);
    if (!$number_check){
$resultat = mysql_query("INSERT INTO tbl_booking (year, week, dato, time, bruger_id, txt) VALUES ('$tmp_year','$tmp_week','$tmp_day','$tmp_time','1','$tmp_txt')") or die(mysql_error());

echo "<br>Din booking er registreret.<br>";

print "Tekst:".$tmp_txt."<br>";
print "Uge:".$tmp_week."<br>";
print "Dag:".$tmp_day."<br>";
print "År:".$tmp_year."<br>";
print "Tid:". sprintf("%02d",$tmp_time)." - ".sprintf("%02d",$tmp_time+1);
}
}
}
}?>
----slut klip 2----

Der er jo nok noget galt i checkboxens værdi, men jeg kan ikke finde det. Hjælp ønskes.

Levende eksempel kan ses på www.totte.dk/ht/uge6.php
Avatar billede editone Nybegynder
29. november 2004 - 17:47 #1
prøv at fjern alle [] tagsne foran dine navngivninger af input boxene
eks. name="box[]" skriv istedet name="box"

Mvh editone - editone.dk
Avatar billede torstein Novice
29. november 2004 - 21:49 #2
Nej, det giver ingen ændring. Selv om man vælger sidste checkbox i uge 49, så opdaterer den den først ledige, og uden tekst.
Avatar billede torstein Novice
29. november 2004 - 21:56 #3
Flg. blev ændret. Rent tilfælde (??)

Nu fungerer det, så hvis nogen kan forklare hvorfor, så er jeg åben for svar.

for($c=0; $c < count($_POST['txt']); $c++) {
    if ($_POST['txt'][$c] != "") {
        $tmp_txt = $_POST['txt'][$c];

før var det $_POST['box']
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester