Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przesyłanie tekstu.
Adis92
post
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Witam. Potrzebuje pomocy przy skrypcie. Otóż chcę aby ten skrypt po wybraniu nazwy przez użytkownika przenosił ją do pola input. Wszytko jest ok tylko że wypisuje te same nazwy. Czy może ktoś mi doradzić co zrobić albo poprawić kod ?
  1. <form action="" method="post">
  2.    <input name="name" type="text" value="<?=htmlspecialchars($_POST['nazwa[]'])?>" />
  3.    <a href="namegenerate.php">Suggest Name</a><br>
  4.    <input type="submit" value="ok" />
  5. </form>

skrypt:
  1. <?php
  2.  
  3. /* Settings */
  4. $name = 20; // Ilość wyświetlanych nazw!
  5. /* End Settings */
  6.  
  7. function del_mult_chars($str) {
  8.    return preg_replace('/(w)1+/', "$1", $str);
  9. }
  10.  
  11. function world_name() {
  12.    $chars = array(
  13.        "aeiou",
  14.        "bcdfghjklmnpqrstvwxzy"
  15.    );
  16.    $end_letters = rand(1, 2) == 1 ? "a" : "ia";
  17.    $world_name = "";
  18.  
  19.    for ($i=rand(0, 1); $i <= rand(3, 4); $i++) {
  20.        $str = $chars[$i%2];
  21.        $world_name .= $str[rand(0, strlen($str)-1)];
  22.    }
  23.  
  24.    return ucwords(del_mult_chars($world_name.$end_letters));
  25. }
  26.  
  27. $pisz = world_name();
  28.  
  29. echo "<form action='?ids=create' method='POST'><table cellspacing='0' cellpadding='1' style='border: 1px solid #380000; width: 300px;'>";
  30. for ($i=1; $i<=$name; $i++) {
  31.    if(($x%2)==1){$bg='#F0E5CC';}else {$bg='#C8B299';}
  32.    echo "
  33.        <tr style='background:$bg'>
  34.            <td style='padding: 0px 2px 2px 10px; font: bold 12px verdana;'>
  35.                <input type='hidden' name='nazwa' value='$pisz'>
  36.                <input type='radio' name='nazwa1' value='' /> $pisz
  37.            </td>
  38.        </tr>
  39.    ";
  40.    $x++;
  41. }
  42.    echo "</table><br>";
  43.    echo "
  44.        <input type='submit' value=''>
  45.        <input type='button' value='Back' onClick='history.back()'>
  46.        <input type='button' value='Suggest Name' onClick='window.location.reload( true );'>
  47.    ";
  48.  
  49.  
  50. echo "</form>";
  51. ?>


Ten post edytował Adis92 28.07.2009, 23:15:31
Go to the top of the page
+Quote Post
b4x
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

Ostrzeżenie: (0%)
-----


foreach" title="Zobacz w manualu PHP" target="_manual ?

  1. <form action="" method="post">
  2.   <input name="name" type="text" value="<?=htmlspecialchars($_POST['nazwa[]'])?>" />
  3.   <a href="namegenerate.php">Suggest Name</a><br>
  4.   <input type="submit" value="ok" />
  5. </form>


na

  1. <form action="" method="post">
  2.   <?php foreach ($_POST['nazwa'] as $n): ?>
  3.   <input name="name[]" type="text" value="<?=htmlspecialchars($n)?>" />
  4.   <?php endforeach; ?>
  5.   <a href="namegenerate.php">Suggest Name</a><br>
  6.   <input type="submit" value="ok" />
  7. </form>


Nie wiem czy do końca o to Ci chodziło tongue.gif

Ten post edytował b4x 28.07.2009, 23:27:58


--------------------
Go to the top of the page
+Quote Post
Adis92
post
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Nie do końca o to.

Może wyjaśnię jak to działa.
A więc jest forma przy której jest link do pliku który generuje 20 nazw. Przy każdej nazwie jest pole wyboru. I właśnie zamiast generować 20 nazw to generuje jedną i wypisuje ją 20 razy. I później żeby wybraną nazwę przenosiło do tego pola input type="text"
Go to the top of the page
+Quote Post
b4x
post
Post #4





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

Ostrzeżenie: (0%)
-----


A już rozumiem.

  1. <?php
  2. $pisz = world_name();
  3. ?>


Wrzuć do pętli (for)


Tzn nie tak:

  1. <?php
  2. $pisz = world_name(); // bo tylko jeden raz wygeneruje przecież :-) nie jest w pętli, więc kolejny raz nie wygeneruje.
  3.  
  4. echo "<form action='?ids=create' method='POST'><table cellspacing='0' cellpadding='1' style='border: 1px solid #380000; width: 300px;'>";
  5. for ($i=1; $i<=$name; $i++) {
  6.   if(($x%2)==1){$bg='#F0E5CC';}else {$bg='#C8B299';}
  7.   echo "
  8.       <tr style='background:$bg'>
  9.           <td style='padding: 0px 2px 2px 10px; font: bold 12px verdana;'>
  10.               <input type='hidden' name='nazwa' value='$pisz'>
  11.               <input type='radio' name='nazwa1' value='' /> $pisz
  12.           </td>
  13.       </tr>
  14.   ";
  15.   $x++;
  16. }
  17. ?>


Tylko tak:

  1. <?php
  2. echo "<form action='?ids=create' method='POST'><table cellspacing='0' cellpadding='1' style='border: 1px solid #380000; width: 300px;'>";
  3. for ($i=1; $i<=$name; $i++) {
  4.   $pisz = world_name(); // jest w pętli i wygeneruje za każdym razem nowe :)
  5.   if(($x%2)==1){$bg='#F0E5CC';}else {$bg='#C8B299';}
  6.   echo "
  7.       <tr style='background:$bg'>
  8.           <td style='padding: 0px 2px 2px 10px; font: bold 12px verdana;'>
  9.               <input type='hidden' name='nazwa' value='$pisz'>
  10.               <input type='radio' name='nazwa1' value='' /> $pisz
  11.           </td>
  12.       </tr>
  13.   ";
  14.   $x++;
  15. }
  16. ?>


Ten post edytował b4x 28.07.2009, 23:50:24


--------------------
Go to the top of the page
+Quote Post
Adis92
post
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Ok już wypisuje dobrze. Tylko jeszcze jest problem z przenoszeniem do inputa. Bo zamiast przenosić tam nazwe wybraną to generuje nową.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:54