Avatar billede mibu Nybegynder
03. juli 2013 - 20:17 Der er 10 kommentarer og
1 løsning

Formular trækker ikke valgt navn med til side to

Jeg har brug for andre øjne på den formular der sender en updatering til db, den skal opdaterer et navn fra en selectbox (dropdown) men det virker som om, den ikke trækker navnet med over på side 2.
Jeg har en formodning om at det er siden der sender, som fejler i omkring linie 18 (echo '<select name="%rows">';) men kan ikke se hvad der er forkert.

SIDEN DER SENDER:
<?php

// Retrieve data from database
$sql="SELECT name FROM $tbl_horse";
$result=mysql_query($sql);
?>

<table align="center" border="0" cellspacing="0" cellpadding="3">

<tr>
<form name="indtast" method="post" action="login_success.php?side=send_besked">
<th width="80%">Bemærkning til:</th>
</tr>
<tr>
<td align="center">
<?php
// Start looping rows in mysql database. Det må være her omkring fejlen er
echo '<select name="%rows">';
while($rows=mysql_fetch_array($result))

{

echo '<option value="'.$rows[0].'">'.$rows[0].'</option>';

}
    echo '</select>';
?>
</td>
</tr>

<tr>
<td align="center"><textarea wrap="physical" rows="10" cols="45%" name="tekst"></textarea>
</td>
</tr>
<tr>
<td align="center"><input type="submit" name="send" value="Ret besked"></td></tr>
</form>
</table>

<?php
// close MySQL connection
mysql_close();
?>

</table>

SIDER DER MODTAGER:


<?PHP
$tekst = $_REQUEST["tekst"];
$name = $_REQUEST["rows"];   
mysql_query("UPDATE $tbl_horse SET remarks='$tekst' WHERE name='%name'") or die(mysql_error()); 
//hvis jeg sætter et gyldigt navn i name virker det
?>               
<table align="center">               
<hr width="50%" size="3">
<tr>
<td width="80%">               
                <?PHP echo "Teksen på %name er rettet til:<br>$tekst"; ?>
</td>
</tr>
</table>

<?php
// close MySQL connection
mysql_close();
?>
Avatar billede erikjacobsen Ekspert
03. juli 2013 - 20:58 #1
Hvad laver det %-tegn ?

    echo '<select name="%rows">';
03. juli 2013 - 21:18 #2
Det første der slår mig er, at du på siden der modtager definerer $name = $_REQUEST["rows"], men derefter forsøger du at indsætte %name, ikke $name, i databasen.  Det forstår mysql ikke, og derfor bliver der ikke indsat noget.

Og så en detalje:  På siden der sender har du

<tr>
<form ....>
<th width="80%">Bemærkning til:</th>
</tr>
....
....
</form>

Det skulle vel være

<form ......>
<tr>
th width="80%">Bemærkning til:</th>
</tr>
</form>
Avatar billede mibu Nybegynder
03. juli 2013 - 21:58 #3
copy/paste gør arbejdet lettere :-) "på møj hurtig vis" kan en fejl blive til mange.

erikjacobsen og Christian_Belgien - fejl rettet

Men desværre trækkes name ($rows) stadig ikke med over $tekst gør.
Avatar billede erikjacobsen Ekspert
03. juli 2013 - 22:02 #4
Må vi se?
Avatar billede mibu Nybegynder
03. juli 2013 - 22:08 #5
Koden?
Avatar billede erikjacobsen Ekspert
03. juli 2013 - 22:08 #6
Ja tak
Avatar billede mibu Nybegynder
03. juli 2013 - 22:10 #7
<?php

// Retrieve data from database
$sql="SELECT name FROM $tbl_horse";
$result=mysql_query($sql);
?>

<table align="center" border="0" cellspacing="0" cellpadding="3">
<form name="indtast" method="post" action="login_success.php?side=send_besked">
<tr>
<th width="80%">Bemærkning til:</th>
</tr>
<tr>
<td align="center">
<?php
// Start looping rows in mysql database.
echo '<select name="$rows">';
while($rows=mysql_fetch_array($result))

{

echo '<option value="'.$rows[0].'">'.$rows[0].'</option>';

}
    echo '</select>';
?>
</td>
</tr>

<tr>
<td align="center"><textarea wrap="physical" rows="10" cols="45%" name="tekst"></textarea>
</td>
</tr>
<tr>
<td align="center"><input type="submit" name="send" value="Ret besked"></td></tr>
</form>
</table>

<?php
// close MySQL connection
mysql_close();
?>

</table>



//Sendes til:

<?PHP
$tekst = $_REQUEST["tekst"];
$name = $_REQUEST["rows"];   
mysql_query("UPDATE $tbl_horse SET remarks='$tekst' WHERE name='$name'") or die(mysql_error()); 
?>               
<table align="center">               
<hr width="50%" size="3">
<tr>
<td width="80%">               
                <?PHP echo "Teksen på $name er rettet til:<br>$tekst"; ?>
</td>
</tr>
</table>

<?php
// close MySQL connection
mysql_close();
?>
Avatar billede erikjacobsen Ekspert
03. juli 2013 - 22:11 #8
Du skal kun

  echo '<select name="rows">';
Avatar billede mibu Nybegynder
03. juli 2013 - 22:14 #9
SUPER!!
Takker mange gange, du samler ikke point?
Avatar billede erikjacobsen Ekspert
03. juli 2013 - 22:15 #10
Nej tak.
Avatar billede mibu Nybegynder
03. juli 2013 - 22:17 #11
ok jeg svare mig selv
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

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