Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przesyłanie tekstu.
Forum PHP.pl > Forum > Przedszkole
Adis92
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. ?>
b4x
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
Adis92
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"
b4x
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. ?>
Adis92
Ok już wypisuje dobrze. Tylko jeszcze jest problem z przenoszeniem do inputa. Bo zamiast przenosić tam nazwe wybraną to generuje nową.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.