Re: Re: posting information from a textarea

From: Date: Fri, 07 Jul 2006 15:18:17 +0000
Subject: Re: Re: posting information from a textarea
References: 1 2 3 4 5 6 7 8  Groups: php.db 
Request: Send a blank email to php-db+get-42188@lists.php.net to get a copy of this message
Ha! I figured the damn thing out! Using the full text type created a bunch of overhead and it wasn't storing it into the table. I realized that I was unsetting the post array before I was doing the print_r so that is why the variables weren't showing up. Then, I finally realized that for some reason, I had to convert the textarea to a utf encoding before I entered it into the database! That was annoying. On 7/6/06, Dave W <dabbaking@gmail.com> wrote:
I think I might have found the problem, but I'm not sure how to fix it. I'm just going to rebuild the form and it make it seperate (with all the database calls in one page). For some reason, if I add another field before the motto and i change it, it changes motto too...w/e I'll just make a new one. On 7/6/06, Dave W <dabbaking@gmail.com> wrote: hmm..interesting. Neither the motto or desc is showing up in the array. I made a simple form and the echo 'post vars: ' . print_r($_POST, true) . '<br/>'; works fine. I'm just perplexed on why the motto is still working and not the desc. Maybe it's because I'm using a fieldset, but then why wouldn't just one not work? On 7/6/06, Chris < dmagick@gmail.com> wrote:
Dave W wrote:
I'll show you all the steps it passes through. Here's the form: <form action="proc.php" method="post">
            <fieldset>
                <label for="Motto">Motto:</label>
                <input class="text" type="text" size="25"
name="motto"
value="<?php if($form->value("motto") == ""){ echo $session->nationinfo['motto']; }else{ echo $form->value("motto"); } ?>" />
                <label for="desc">Nation Description:</label>
                <textarea name="desc" cols="50" rows="5"><?php
if($form->value("desc") == ""){ echo $session->nationinfo['desc']; }else{ echo $form->value("desc"); } ?></textarea> <input type="submit" value=" Edit Nation " />
         </fieldset>
</form> It's echoing the nationinfo right, but its not posting it. The motto also works too. When it's submitted, it goes through the function procEditNation(). $session->editNation($_POST['motto'], $_POST['desc']); The editNation function: function editNation($motto, $desc){
      global $database, $form;
      if($motto){
         $field = "motto";
         $motto = htmlspecialchars($motto);
         $database->updateNationField($this->username,"motto",$motto);
         }
      if($desc){
         $field = "desc";
         $desc = htmlspecialchars($desc);
         $database->updateNationField($this->username,"desc",$desc);
      }
      return true;
} Then finally the updateNationField function: function updateNationField($username, $field, $value){
      $q = "UPDATE nations SET ".$field." = '$value' WHERE username
=
'$username'";
      return mysql_query($q, $this->connection);
} I just don't know what's wrong since it's posting the motto (which
is
just a text-type input) and not the description (which is a
textarea). I
echo'd out the mysql queries and excuted them myself from what
echo'd
out and it's selecting the desc column just fine.
That definitely all looks fine. If you do: echo 'post vars: ' . print_r($_POST, true) . '<br/>'; does it show up in post at all? -- Postgresql & php tutorials http://www.designmagick.com/
-- Dave W -- Dave W
-- Dave W

« previous php.db (#42188) next »