Avatar billede axel21 Juniormester
17. juni 2008 - 10:17 Der er 12 kommentarer og
1 løsning

Hjælp til for løkke eller alternativ

Hej, jeg har en "formular" jeg selv har bygget op i php. Den kan jeg tast en masse person info i og sende det hele til databasen, no problems. Men så kommer det svære, jeg vil gerne sådan at man skal kunne vælge flere personer og ikke kun en som det er lige pt.
Men de felter der er i person 1, 2 osv. er jo ens, så der må jo være en smart måde at gemme disse på alt afhængig af hvor mange personer man vælger at taste info på.

DROPDOWN (min drop down hvor jeg vælger antal personer)

<tr><td class="bottomtext">Antal personer:</td><td>
<form id="menu" action=""><p>
<select size="1" onchange="Show(this)">
<option selected="selected">Vælg antal personer</option>
<option value="table1">1. person</option>
<option value="table1,table2">2. personer</option>
<option value="table1,table2,table3">3. personer</option>
<option value="table1,table2,table3,table4">4. personer</option>
<option value="table1,table2,table3,table4,table5">5. personer</option>
</select>

INPUT FELTER TIL 1 person

<table border="0" id="table1" style="display:none">
<tr>
<td><span class="bottomtext">1. person</span></td><td>&nbsp;</td>
</tr>
<tr>
<td><span class="blue">Fornavn(e):</td><td><input type="text" class="userinput" size="21" name="fornavn1"></span></td>
</tr>
<tr>
<td><span class="blue">Efternavn:</td><td><input type="text" class="userinput" size="21" name="efternavn1"></span></td>
</tr>
?>
</table>



MYSQL KODEN

<?

if(isset($_POST["send_x"]))
{
        $fornavn = mysql_real_escape_string($_POST['fornavn1']);
        $efternavn = mysql_real_escape_string($_POST['efternavn1']);
           
    if(!empty($fornavn))
    {
        mysql_query("INSERT INTO siku (fornavn, efternavn)
        VALUES ('". $fornavn ."', '". $efternavn ."'or die(mysql_error());
    }
    else
    {
    }
}

?>
Avatar billede fant0mas Nybegynder
17. juni 2008 - 15:18 #1
Prøv denne:


<script type="text/javascript">
function Show(antal){
    obj = document.getElementById('pony');
    if(antal){
        obj.innerHTML = '';
   
        for(i=1;i<=antal;i++){
            obj.innerHTML += '<table border="0"><tr><td><span class="bottomtext"><b>'+i+' person</b></span></td><td></td></tr><tr><td><span class="blue">Fornavn(e):</td><td><input type="text" class="userinput" size="21" name="fornavn[]"></span></td></tr><tr><td><span class="blue">Efternavn:</td><td><input type="text" class="userinput" size="21" name="efternavn[]"><input type="hidden" name="id[]" value="'+1+'"></span></td></tr></table>';
        }
    }   
}
function Hide(){
    obj = document.getElementById('pony');
    obj.innerHTML = '';
}
</script>

<form id="menu" action="" method="post">
<select size="1" onchange="Show(this.value)" name="antal">
<option selected="selected">Vælg antal personer</option>
<option value="1">1. person</option>
<option value="2">2. personer</option>
<option value="3">3. personer</option>
<option value="4">4. personer</option>
<option value="5">5. personer</option>
</select>

<div id="pony"></div>
<input type="hidden" name="send" value="1">
<input type="submit" name="submit" value="send">
<input type="button" onclick="Hide()" name="clear" value="Ryd">
</form>
<?php
if(isset($_POST['send'])){
    if(is_numeric($_POST['antal'])){
        foreach ($_POST['id'] as $id => $val){
            echo '#'.$id.' ---> '.$_POST['fornavn'][$id].' '.$_POST['efternavn'][$id].'<br>';
           
            $result = mysql_query(sprintf("INSERT INTO siku (fornavn, efternavn)
                                                            VALUES
                                                            (%s, %s)"   
                                                            ,mysql_real_escape_string($_POST['fornavn'][$id])
                                                            ,mysql_real_escape_string($_POST['efternavn'][$id])))
                                                            or die(mysql_error());
                   
            if($result){
                echo 'Indsat i databasen';
            }
        }
       
    }
   
}
?>

:-)
Hvis der er spørgsmål så sig til.
Avatar billede axel21 Juniormester
26. juni 2008 - 22:56 #2
Undskyld det sene svar, har været på ferie. :-)

Den melder den klassike fejl - Unknown column 'peter' in 'field list'
Avatar billede pidgeot Nybegynder
26. juni 2008 - 22:58 #3
Der skal vel lige et par apostroffer om de værdier *-)

            $result = mysql_query(sprintf("INSERT INTO siku (fornavn, efternavn)
                                                            VALUES
                                                            ('%s', '%s')"   
                                                            ,mysql_real_escape_string($_POST['fornavn'][$id])
                                                            ,mysql_real_escape_string($_POST['efternavn'][$id])))
                                                            or die(mysql_error());

*går igen*
Avatar billede axel21 Juniormester
27. juni 2008 - 18:35 #4
Tak for hjælpen begge 2....
Avatar billede axel21 Juniormester
28. juni 2008 - 09:41 #5
Et sidste spørgsmål, jeg har nogle alm. variabler. Hvordan skal de tilføjes?
Avatar billede fant0mas Nybegynder
28. juni 2008 - 13:52 #6
$result = mysql_query(sprintf("INSERT INTO siku (fornavn, efternavn, variable,variabel,variabel)
                                                            VALUES
                                                            ('%s', '%s')"   
                                                            ,mysql_real_escape_string($_POST['fornavn'][$id])
                                                            ,mysql_real_escape_string($variabel)
                                                            ,mysql_real_escape_string($variabel)
                                                            ,mysql_real_escape_string($variabel)
                                                            ,mysql_real_escape_string($_POST['efternavn'][$id])))
                                                            or die(mysql_error());
Avatar billede fant0mas Nybegynder
28. juni 2008 - 13:54 #7
Hov, values skal selvfølgelig også tilføjes:
'%s' = streng
'%d' = tal


VALUES
('%s', '%s','%s','%s','%s')"
Avatar billede axel21 Juniormester
29. juni 2008 - 11:52 #8
Arg, du er jo simpelthen så klog. Tak
Avatar billede axel21 Juniormester
29. juni 2008 - 11:58 #9
Jeg kan ikke få den til at sætte dato og tid ind i databasen, hvad er fejlen her?


$result = mysql_query(sprintf("INSERT INTO siku (titel, fornavn, efternavn, bynavn, virksomhedsnavn, adresse, postnummer, region, dato)
                                                            VALUES
                                                            ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s, '%d')"   
                                                            ,mysql_real_escape_string($_POST['titel'][$id])
                                                            ,mysql_real_escape_string($_POST['fornavn'][$id])
                                                            ,mysql_real_escape_string($_POST['efternavn'][$id])
                                                            ,$virksomhedsby
                                                            ,$virksomhedsnavn
                                                            ,$virksomhedsadresse
                                                            ,$virksomhedspostnummer
                                                            ,$brugernavne
                                                            ,NOW()))
                                                            or die(mysql_error());
Avatar billede axel21 Juniormester
29. juni 2008 - 11:59 #10
Den siger

#0 ---> Jan Jacobsen
Fatal error: Call to undefined function: now()
Avatar billede axel21 Juniormester
29. juni 2008 - 12:08 #11
Hvis jeg sætter denne streng ind i for løkken, så virker den ikke? Ved i evt. hvorfor?

<tr><td><span class="blue">Ønskes transport:</td></tr><tr><td><input type="checkbox" class="userinput" size="20" name="transport5" value="ja" onclick="document.getElementById'cpr5').style.display=this.checked?'inline':'none';document.getElementById('cprstart5').style.display=this.checked?'inline':'none';document.getElementById('cprmidt5').style.display=this.checked?'inline':'none';document.getElementById('cprslut5').style.display=this.checked?'inline':'none';"></td></tr>
Avatar billede fant0mas Nybegynder
30. juni 2008 - 08:59 #12
Ret den sidste %d til %s

Til det sidste, så tror js du vil afslutte indholdet af strengen når du bruger '
Avatar billede axel21 Juniormester
01. juli 2008 - 00:10 #13
Den siger stadig:

Fatal error: Call to undefined function: now()

Med hensyn til js, så virker det stadig ikke, nogen gode forslag?

Sætter 150 point til dig hvis du knækker den?
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