Avatar billede kodak Mester
25. oktober 2011 - 20:20 Der er 12 kommentarer og
1 løsning

Array help

Jeg vil høre hvordan jeg laver følgendene:

Jeg indskriver vælger et emne i en popdown menu og skriver en tekst i en textbox så skal jeg kunne trykke på en knap nedenunder og får så mulighed for at vælge et nyt emne i en ny dropdown menu o skrive tekst i en ny textbox, og sådan skal jeg kunne fortsætte med at udfylde nye.

Hvordan får jeg det til at hænge sammen i mit script?

Jeg har følgendene script til at oprette nye poste's.

<form method="post" action="scripts.php?action=add&return=' . rawurlencode($_SERVER['REQUEST_URI']) . '">
                <table>
                    <tr>
                        <td><p>Overskrift<br><input type="text" name="title" style="width:540px;"/></p></td>
                    </tr>
                    <tr>
                        <td><p>Emner<br>
                            <select name="emne" style="width:200px;"">
                                <option value="1">et</option>
                                <option value="2">to</option>
                                <option value="3">tre</option>
                                <option value="4">fire</option>
                            </select> Antal: <input type="text" name="emne_antal" style="width:340px;"/> </p></td>
                    </tr>
                    <tr>
                        <td><p>Beskrivelse<br><textarea name="content" style="width:540px; height:75px;"></textarea>
                        </p></td>
                    </tr>
                    <tr>
                        <td style="text-align:right;"><input type="submit" value="Gem" /></td>
                    </tr>
                </table>
                <br><br>

            </form>


det bliver sendt til dette script:

if($_REQUEST['action'] == 'add') {
        mysql_query("INSERT INTO `my_recipes_module` SET `title`='" . $_POST['title'] . "', `emne`='" . $_POST['emne'] . "', `emne_antal`='" . $_POST['emne_antal'] . "', `time`='" . time() . "', `content`='" . $_POST['content'] . "'") or die (mysql_error());
    }


Håber i forstår.
Avatar billede arne_v Ekspert
25. oktober 2011 - 20:31 #1
Den SQL ser mystisk ud.

INSERT INTO tabel VALUES(x,x,x)
UPDATE tabel SET f=x,f=x,f=x
Avatar billede kodak Mester
25. oktober 2011 - 20:37 #2
Sådan ser editoren og deleteren ud.

if($_REQUEST['action'] == 'add') {
        mysql_query("INSERT INTO `module` SET `title`='" . $_POST['title'] . "', `emne`='" . $_POST['emne'] . "', `emne_antal`='" . $_POST['emne_antal'] . "', `time`='" . time() . "', `content`='" . $_POST['content'] . "'") or die (mysql_error());
    }
   
    if($_REQUEST['action'] == 'edit') {
        mysql_query("UPDATE `module` SET `title`='" . $_POST['title'] . "', `emne`='" . $_POST['emne'] . "', `emne_antal`='" . $_POST['emne_antal'] . "', `time`='" . time() . "', `content`='" . $_POST['content'] . "' WHERE `id`=" . $_REQUEST['id']) or die (mysql_error());
    }
   
    if($_REQUEST['delete']) {
        mysql_query("DELETE FROM `module` WHERE `id`=" . $_REQUEST['delete']) or die (mysql_error());
    }


og det har alle dage virket ubeklageligt.
Hvordan havde du ellers tænkt dig det?
Avatar billede majbom Novice
26. oktober 2011 - 15:45 #3
altså du skal kunne tilføje alle de "linjer" du vil, løbende?
Avatar billede kodak Mester
26. oktober 2011 - 22:09 #4
Ja korrekt forstået.
Avatar billede majbom Novice
27. oktober 2011 - 08:11 #5
der skal du over i noget javascript eller andet clientside-script, hvor du kan generere de elementer der skal bruges, og appende dem til dit DOM-træ...
Avatar billede kodak Mester
27. oktober 2011 - 17:09 #6
Alså jeg prøver at lave en opskrift database
og det jeg mangler er at jeg skal kunne indtaste ingredienser og mængde, det er den del jeg ud spørger efter.

Har du en ide om hvad jeg skal søge?
Avatar billede kodak Mester
29. oktober 2011 - 13:03 #7
kan nogen hjælpe mig?
Avatar billede kodak Mester
30. oktober 2011 - 01:22 #8
har vist fundet side delen:

<script language="javascript">
fields = 0;
function addInput() {
if (fields != 40) {
document.getElementById('text').innerHTML += "<input type='text' name='volume[]' style='width:50px;' value='Mængde'/><input type='text' name='unit[]' style='width:190px;' value='Enhed'/><input type='text' name='ingredients[]' style='width:300px;' value='Ingrediens'/><br />";
fields += 1;
} else {
document.getElementById('text').innerHTML += "<br />Only 40 upload fields allowed.";
document.form.add.disabled=true;
}
}
</script>
</head>
<body>
<div id="text">

</div>
<form name="form">
<input type="button" onclick="addInput()" name="add" value="Tilføj Ingrediens" />
</form>
</body>
Avatar billede kodak Mester
30. oktober 2011 - 13:13 #9
okay er nået til dete hvor den skal vise det frem
men hvordan for jeg den til at vise sig
Mængde[1] | Forhold[1] | Ingrediens[1]
Mængde[2] | Forhold[2] | Ingrediens[2]

i stedet for:

Mængde[1] | Mængde[2]
Forhoæd[1] | Forhold[2]
Ingrediens[1] | Ingridiens[2]

Såfdan ser det ud nu:

if($edit_news['volume']) {
                            $volumes = explode(' ', $edit_news['volume']);
                            $antal_dvd = count($volumes);
                        }
                        foreach ($volumes as $volume) {
                                if($cols==$i){
                                $i=0;
                                }
                            echo '<input type="text" name="volume[]" style="width:50px;" value="' . $volume . '"/>';
                            $i++;
                        }
                        if($edit_news['unit']) {
                            $units = explode(' ', $edit_news['unit']);
                            $antal_units = count($units);
                        }
                        foreach ($units as $unit) {
                                if($cols==$i){
                                $i=0;
                                }
                            echo '<input type="text" name="unit[]" style="width:50px;" value="' . $unit . '"/>';
                        }
                        if($edit_news['ingredients']) {
                            $ingredientses = explode(' ', $edit_news['ingredients']);
                            $antal_ingredientses = count($ingredientses);
                        }
                        foreach ($ingredientses as $ingredients) {
                                if($cols==$i){
                                $i=0;
                                }
                            echo '<input type="text" name="ingredients[]" style="width:300px;" value="' . $ingredients . '"/>';
                            $i++;
                        }
Avatar billede kodak Mester
05. november 2011 - 13:28 #10
løsning er fundet.
Lukker.
Avatar billede majbom Novice
05. november 2011 - 18:24 #11
og løsningen blev?
Avatar billede kodak Mester
05. november 2011 - 18:42 #12
Som skrevet i #9

echo'<form method="post" action="my_recipes_scripts.php?action=edit&id=' . $edit_news['id'] . '&return=' . rawurlencode($_SERVER['SCRIPT_NAME']) . '">';
            echo'<table>
                    <tr>
                        <td><p>Overkrift<br><input type="text" name="title" style="width:540px;" value="' . $edit_news['title'] . '" /></p></td>
                    </tr>
                    <tr>
                        <td><p>Typpe<br><input type="text" name="typpe" style="width:540px;" value="' . $edit_news['typpe'] . '" /></p></td>
                    </tr>
                    <tr>
                        <td><p>Antal<br><input type="text" name="antal" style="width:540px;" value="' . $edit_news['antal'] . '" /></p></td>
                    </tr>
                    <tr>
                        <td>';
                        echo'<table cellspacing="5" width="540" bgcolor="#4f4f4f">
            <tr>
                <td width="60px"><p><strong>Mængde</strong></p></td>
                <td width="60px"><p><strong>Enhed</strong></p></td>
                <td width="310px"><p><strong>Ingrediens</strong></p></td>
                <td width="20px"><p><strong>Del</strong></p></td>
            </tr>';
           
                echo'<tr>
                <td style="background-color:#6a6a6a;"><p>';
                if($edit_news['volume']) {
                    $volumes = explode('-*-', $edit_news['volume']);
                    $antal_dvd = count($volumes);
                }
                foreach ($volumes as $volume) {
                if($cols==$i){
                    $i=0;
                }
                if ($volume) {
                    echo '<input type="text" name="volume[]" style="width:50px;" value="' . $volume . '"/><br />';
                } else {
                    echo '<input type="text" name="volume[]" style="width:50px;"/><br />';
                }
                $i++;
            }
            echo'
                </p></td>
                <td style="background-color:#6a6a6a;"><p>';
                if($edit_news['unit']) {
                    $units = explode(' ', $edit_news['unit']);
                    $antal_units = count($units);
                }
            foreach ($units as $unit) {
                if($cols==$i){
                    $i=0;
                }
                if ($unit) {
                    echo '<input type="text" name="unit[]" style="width:50px;" value="' . $unit . '"/><br />';
                } else {
                    echo '<input type="text" name="unit[]" style="width:50px;"/><br />';
                }
                $i++;
            }
                echo'</p></td>
                <td style="background-color:#6a6a6a;"><p>';
                if($edit_news['ingredients']) {
                    $ingredientses = explode('-*-', $edit_news['ingredients']);
                    $antal_ingredientses = count($ingredientses);
                }
                foreach ($ingredientses as $ingredients) {
                    if($cols==$i){
                        $i=0;
                    }
                if ($ingredients) {
                    echo '<input type="text" name="ingredients[]" style="width:300px;" value="' . $ingredients . '"/><br />';
                } else {
                    echo '<input type="text" name="ingredients[]" style="width:300px;"/><br />';
                }
                $i++;
            }
              echo' </p></td>
                <td style="background-color:#6a6a6a;"><p>';
                if($edit_news['del']) {
                    $dele = explode('-*-', $edit_news['del']);
                    $antal_dele = count($dele);
                }
                foreach ($dele as $del) {
                    if($cols==$i){
                        $i=0;
                    }
                if ($del) {
                    echo '<input type="text" name="del[]" style="width:10px;" value="' . $del . '"/><br />';
                } else {
                    echo '<input type="text" name="del[]" style="width:10px;"/><br />';
                }
                $i++;
            }
              echo' </p></td>
            </tr>';
       
        echo'</table>';
        echo'
                        </td>
                    </tr>
                    <tr>
                        <td><p>Url<br><input type="text" name="url" style="width:540px;" value="' . $edit_news['url'] . '" /></p></td>
                    </tr>
                    <tr>
                        <td><p>Br&oslash;dtekst<br><textarea name="content" style="width:540px; height:75px;">' . $edit_news['content'] . '</textarea></p></td>
                    </tr>
                    <tr>
                        <td colspan="2" style="text-align:right;"><input type="submit" value="Gem" /></td>
                    </tr>
                </table></form>';

og MySQL scriptet:

mysql_query("UPDATE `my_recipes_module` SET `typpe`='" . $_POST['typpe'] . "', `title`='" . $_POST['title'] . "', `antal`='" . $_POST['antal'] . "', `url`='" . $_POST['url'] . "', `ingredients`='" . implode($_POST['ingredients'], '-*-') . "', `volume`='" . implode($_POST['volume'], '-*-') . "', `unit`='" . implode($_POST['unit'], ' ') . "', `del`='" . implode($_POST['del'], '-*-') . "', `time`='" . time() . "', `content`='" . $_POST['content'] . "' WHERE `id`=" . $_REQUEST['id']) or die (mysql_error());
Avatar billede majbom Novice
05. november 2011 - 19:01 #13
okay, super
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