Avatar billede shjdsi Nybegynder
11. september 2003 - 22:28 Der er 12 kommentarer og
1 løsning

sætte value til php var fra knap

Hej!

jeg har noget kode med nogle text felter og en knap. Derudover har jeg lavet en skjult knap, det jeg gerne ville var at $dirty bliver sat til 1, den er 0 default når der trykkes på submit knappen. Således at jeg kan ungå at køre database kald før brugeren har indtastet værdier. Jeg ved godt at jeg jo bare kan kalde et andet php script så ungår jeg disse problemer, men det er det jeg gerne vil :-)

her er koden
<?php
require ("header.php");
echo "<h2>Add contact</h2>";

$dirty=0;
echo "
        <table border =\"1\">

<tr>


<form name=\"custom\" action= ".$_SERVER['PHP_SELF']."  method=\"GET\">
<input type = \"hidden\"name =\"dirty\" value = $dirty>
            <td>First name</td><td><input type = \"text\" name = \"txtFirstName\"></td><tr>
            <td>Last name </td><td><input type = \"text\" name = \"txtLastName\"></td><tr>
            <td>Phone </td><td><input type = \"text\" name = \"txtPhone\"></td><tr>
            <td>Mobil </td><td><input type = \"text\" name = \"txtMobilPhone\"></td><tr>
            <td>Email </td><td><input type = \"text\" name = \"txtEmailAddress\"></td><tr>
            <td>Contact type </td><td><input type = \"text\" name = \"txtContactType\"></td></tr>

</form>
</table>
<input type = \"submit\" value = \"Create new contact\">";
    if ( $dirty ==0 ) {

    echo "her skal der kaldes kode til indsætte u mysql";
    }

?>
Avatar billede TRoXa Novice
11. september 2003 - 22:41 #1
sådan her tror jeg

<?php

require ("header.php");
echo "<h2>Add contact</h2>";

$dirty=0;
echo "
        <table border=1>

<tr>


<form name=custom action=".$_SERVER['PHP_SELF']."  method=POST>
<input type="hidden name=dirty value=$dirty>
            <td>First name</td><td><input type=text name=txtFirstName></td><tr>
            <td>Last name </td><td><input type=text name=txtLastName></td><tr>
            <td>Phone </td><td><input type=text name=txtPhone></td><tr>
            <td>Mobil </td><td><input type=text name=txtMobilPhone></td><tr>
            <td>Email </td><td><input type=text name=txtEmailAddress></td><tr>
            <td>Contact type </td><td><input type=text name=txtContactType></td></tr>

</form>
</table>
<input type=submit onclick=\"custom.dirty.value=1\" value=\"Create new contact\">";

    if ( $_POST['dirty'] == 0 )
    {
        echo "her skal der kaldes kode til indsætte u mysql";
    }
?>
Avatar billede shjdsi Nybegynder
11. september 2003 - 23:02 #2
jeg er i hvert fald tættere på men jkeg får følgende fejl
Notice: Undefined index: dirty in d:\program files\apache group\apache\htdocs\shj\add_contact.php on line 26
Ved load af siden.

Er det noget der kan løses
Avatar billede TRoXa Novice
11. september 2003 - 23:04 #3
prøv sådan her

<?php

require ("header.php");
echo "<h2>Add contact</h2>";

echo "
        <table border=1>

<tr>


<form name=custom action=".$_SERVER['PHP_SELF']."  method=POST>
<input type="hidden name=dirty value=0>
            <td>First name</td><td><input type=text name=txtFirstName></td><tr>
            <td>Last name </td><td><input type=text name=txtLastName></td><tr>
            <td>Phone </td><td><input type=text name=txtPhone></td><tr>
            <td>Mobil </td><td><input type=text name=txtMobilPhone></td><tr>
            <td>Email </td><td><input type=text name=txtEmailAddress></td><tr>
            <td>Contact type </td><td><input type=text name=txtContactType></td></tr>

</form>
</table>
<input type=submit onclick=\"custom.dirty.value=1\" value=\"Create new contact\">";

    if ( $_POST['dirty'] == 0 )
    {
        echo "her skal der kaldes kode til indsætte u mysql";
    }
?>
Avatar billede shjdsi Nybegynder
11. september 2003 - 23:16 #4
Får desværre stadig denne fejl

Notice: Undefined index: dirty in d:\program files\apache group\apache\htdocs\shj\add_contact.php on line 25
her skal der kaldes kode til indsætte u mysql
Avatar billede TRoXa Novice
11. september 2003 - 23:48 #5
ahhh :)

<?php

require ("header.php");
echo "<h2>Add contact</h2>";

echo "
        <table border=1>

<tr>


<form name=custom action=".$_SERVER['PHP_SELF']."  method=POST>
<input type=hidden name=dirty value=0>
            <td>First name</td><td><input type=text name=txtFirstName></td><tr>
            <td>Last name </td><td><input type=text name=txtLastName></td><tr>
            <td>Phone </td><td><input type=text name=txtPhone></td><tr>
            <td>Mobil </td><td><input type=text name=txtMobilPhone></td><tr>
            <td>Email </td><td><input type=text name=txtEmailAddress></td><tr>
            <td>Contact type </td><td><input type=text name=txtContactType></td></tr>

</form>
</table>
<input type=submit onclick=\"custom.dirty.value=1\" value=\"Create new contact\">";

    if ( $_POST['dirty'] == 0 )
    {
        echo "her skal der kaldes kode til indsætte u mysql";
    }
?>
Avatar billede TRoXa Novice
11. september 2003 - 23:49 #6
så burde den være der :)
Avatar billede shjdsi Nybegynder
12. september 2003 - 00:05 #7
arghhh for stadig den ånds.... fejl...
Notice: Undefined index: dirty in d:\program files\apache group\apache\htdocs\shj\add_contact.php on
Virker det hos dig ? 

Jeg ved ikke hvorfor men php kan ikke se at variablen er initaliseret.
Avatar billede TRoXa Novice
12. september 2003 - 00:14 #8
<?php

    if ($_POST['dirty'] == 1)
    {
       
    echo "her skal der kaldes kode til indsætte i mysql";
    }
    else
    {

        //require ("header.php");
        echo "<h2>Add contact</h2>";

        echo "<table border=1><tr>";
        echo "<form name=custom action=\"$PHP_SELF\" method=POST>";
        echo "<input type=hidden name=dirty value=0>";
        echo "<td>First name</td><td><input type=text name=txtFirstName></td><tr>";
        echo "<td>Last name </td><td><input type=text name=txtLastName></td><tr>";
        echo "<td>Phone </td><td><input type=text name=txtPhone></td><tr>";
        echo "<td>Mobil </td><td><input type=text name=txtMobilPhone></td><tr>";
        echo "<td>Email </td><td><input type=text name=txtEmailAddress></td><tr>";
        echo "<td>Contact type </td><td><input type=text name=txtContactType></td></tr>";
        echo "</form></table>";
        echo "<input type=submit onclick=\"custom.dirty.value=1; custom.submit()\" value=\"Create new contact\">";
    }
?>
Avatar billede TRoXa Novice
12. september 2003 - 00:14 #9
sådan :) nu har jeg også selv testet den af :) og den virker nu :)
Avatar billede shjdsi Nybegynder
12. september 2003 - 00:35 #10
Den virker også her selvom jeg får den der Undefined index fejl når jeg loader siden.
jeg kører PHP Version 4.2.3, jeg kan heller ikke bruge PHP_SELF direkte, men må bruge $_SERVER['PHP_SELF']

Kan det have noget at køre med php konfiguration at gøre for førhen kunne jeg sagtens bruge PHP_SELF direkte...

Førhen kunne jeg også bruge variabler direkte fra andre sider og fra uden at skulle bruge $GET_ og $POST samt alt det andet

Jeg vil gerne give dig point, men har du et hurtigt svar her villedet være rigtigt fedt
Avatar billede TRoXa Novice
12. september 2003 - 00:40 #11
ja det har noget med din konfiguration at gøre :) og det handler om Register_Globals eller hvordan det nu staves som står til off og som skal stå til on før man kan bruge $PHP_SELF i stedet for $_SERVER['PHP_SELF'], men det mindsker sikkerheds nivueat
Avatar billede shjdsi Nybegynder
12. september 2003 - 00:43 #12
mange tak for det.. Nu ved jeg hvad jeg skal gå efter.... Da det kun skal køre på intranet indtil videre vil jeg tage mig den frihed at sætte register-globals til on.  Jeg fandt ud af at der i php.ini kan sætte error report til at rapportere på alle fejl untaget disse notice,--.-- Det tror jeg jeg vil gøre for der er andre steder i siten hvor jeg slåser med undefined... vars m.m

Tak for hjælpen-.... god nat-...
Avatar billede TRoXa Novice
12. september 2003 - 00:44 #13
det var så lidt :) og du må også sove godt :)
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