Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmienna
Forum PHP.pl > Forum > Przedszkole
Hectic
Witam, mam sobie taką zmienną
  1. <?php
  2. $x = 'argument1 (argument2)';
  3. ?>
I teraz mam takie pytanie czy da sie zrobić coś takiego aby ta zmienna została podzielona na dwie inne w taki o to sposób:
  1. <?php
  2. $jeden = 'argument1';
  3. $dwa = 'argument2';
  4. ?>
Jeśli sie da to prosiłbym o pomoc winksmiley.jpg
strife
Witam,

Nie wiem dokładnie co chcesz osiągnąć, tymczasowe rozwiązanie:
  1. <?php
  2.  
  3. $x = 'argument1 (argument2)';
  4.  
  5. $arr = explode( " ", $x );
  6. $jeden = $arr[ 0 ];
  7. $dwa  = str_replace( array( "(", ")" ), "", $arr[ 1 ] );
  8.  
  9. echo '<pre>';
  10. print_r( "\$jeden = $jeden\n\$dwa = $dwa" );
  11. echo '</pre>';
  12.  
  13. ?>

questionmark.gif?
Hectic
Jest mi to potrzebene do tego ze $_POST przesyłam KATEGORIE (ALBUM) w galerii i później musze to rozdzielić zeby osobno dodac do bazy danych. Wszystko działa ładnie pięknie ale pojawia sie błąd gdy w nazwie występuje SPACJA sad.gif
strife
Znowu nie wiem czy dobrze rozumiem, masz sobie formularz, dzięki któremu tworzysz kategorie w swojej galerii. Tak więc co by stało na przeszkodzie, aby dodać jeszcze jedne input w formularzu, jedno które ustawia kategorie, a drugie inną wartość(?).

  1. <form method="post">
  2.   <input type="text" name="form1" />
  3.   <input type="text" name="form2" />
  4. </form>


I masz sobie dwa, po wysłaniu obrabiasz/dodajesz do bazy. Bo po co się bawić w ustawienia jednego inputa a potem jego obrobienie?

Jeżeli coś źle zrozumiałem to napisz dokładniej o co Ci chodzi, bo narazie Tyle się domyśliłem blink.gif

Pozdrawiam!
Hectic
Nie, chodiz o to że mam taki kodzik:
  1. <?php
  2. <TD><SELECT NAME="album_upload">';
  3. $select = mysql_query("Select name FROM galery_kategory ORDER BY name");
  4. while ($wiersz = mysql_fetch_array($select_, MYSQL_NUM)) 
  5. {
  6. $select_2 = mysql_query("SELECT name FROM galery_album WHERE kategory = '$wiersza[0]' ORDER BY name");
  7. while ($wiersz_2 = mysql_fetch_array($select_2, MYSQL_NUM)) 
  8. {
  9. echo'<OPTION>';
  10. printf ("%s", $wiersz[0].' ('.$wiersz_2[0].')');
  11. }
  12. }
  13. ?>
Ten kodzik buduje mi SELECTA i chciałbym zeby wiersz i wiersz_2 były wysyłane osobno, da sie tak zrobić questionmark.gif
strife
Hm.. poprzez stworzenie kolejnych pól w formularzu typu hidden, czyli:

  1. <?php
  2. print_r( $_POST );
  3. ?>
  4. <form method="post">
  5.  <input type="hidden" name="dod_wiersz" value="wartosc1" />
  6.  <input type="hidden" name="dod_wiersz_2" value="wartosc2" />
  7.  <input type="submit" />
  8. </form> 

I wtedy do tych wartości masz bezpośredni dostęp przez tablicę $_POST.

O to chodzi?
Hectic
No tak mniej wiecej o to ale jak to dołączyć do takiego kodu ( to jest kod bezposrednio wygenerowany przez php
  1. <?php
  2. <TABLE class="table" align="center" CELLSPACING="3" CELLPADDING="2">
  3. <TR>
  4. <TD >Ścieżka pliku:</TD>
  5.  
  6. <TD ><input type="file" name="plik"> (max <FONT COLOR="#FF0000">2.5</FONT> MB)</TD>
  7. </TR>
  8. <TR>
  9. <TD >Tytuł:</TD> 
  10. <TD ><INPUT TYPE="Text" method="post" NAME="tytul_zdjecia" SIZE="20"></TD>
  11. </TR>
  12. <TR>
  13. <TD>Album:</TD>
  14. <TD><SELECT NAME="album_upload">
  15. <OPTION>Gothic(Adrian)
  16. <OPTION>Gothic (Artworki)
  17. <OPTION>Gothic (Screen)
  18. <OPTION>Gothic (Tapety)
  19. <OPTION>Gothic II (Artworki)
  20. <OPTION>Gothic II (Screen)
  21. <OPTION>Gothic II (Tapety)
  22. <OPTION>Gothic III (Artworki)
  23. <OPTION>Gothic III (Screen)<
  24. OPTION>Gothic III (Tapety)
  25. </SELECT>
  26. </TD>
  27. </TR>
  28. ?>
questionmark.gif
strife
Pola hidden ( jak nazwa wzkazuje tongue.gif ) nie są widoczne więc to gdzie to umieścisz nie jest aż tak istotne. Sądzać po kodzie nie zależy Ci na zgodności z W3C, w takim razie dodaj to do kodu gdzie generujesz ten swój kod i inne inputy.

Linia 10, 11, 12:
  1.    <TD >Tytuł:</TD>
  2.    <TD >
  3. <INPUT TYPE="hidden" NAME="dod_pole1" value="Twoja_wartosc">
  4. <INPUT TYPE="hidden" NAME="dod_pole2" value="Twoja_wartosc2">
  5. <INPUT TYPE="Text" method="post" NAME="tytul_zdjecia" SIZE="20">
  6. </TD>
  7.    </TR>

method="post" - w inpucie, przeciez to powinno być w tagu <form>.

questionmark.gif
Hectic
Ale tutaj nie chodzi o tytuł tylko o album :/ A wątpie aby to dało sie użyc do albumu... sad.gif
strife
Od początku bo dyskusja jest zbyt chaotyczna i tym sposobem do niczego nie dojdziemy, przedstawię to co udało mi się narazie zrozumieć. Chcesz rozdzielić jakąś wartość na dwa czynniki, które są umieszczone w dynamicznie generowanym formularzu, dokładniej polu <select>

Nie wiem skąd znasz taką budowę formularza, ale nie jest ona wspaniała, myślę, że powinieneś przepisać ten kod, ponieważ struktura select'a powinna być taka:
  1. <form method="post">
  2. <select name="text">
  3. <option value="wartosc">Wartosc widoczna</option>
  4. <option value="wartosc_2">Wartosc widoczna 2</option>
  5. </select>
  6. <input type="submit" />
  7. </form>
  8. <?php
  9. print_r( $_POST ); // ...
  10. ?>

Wtedy bez problemu odwołamy się do wartości wybranej poprzez $_POST[ 'text' ]. Wtedy Twój kod który generuje kawałek z select'em wyglądał by w ten sposób:

  1. <?php
  2.  
  3. echo '<select name="album_upload">';
  4. $select = mysql_query("SELECT name 
  5.  FROM galery_kategory 
  6.  ORDER BY name");
  7.  
  8. while ( $wiersz = mysql_fetch_array( $select, MYSQL_NUM ) ) 
  9. {
  10. $select_2 = mysql_query("SELECT name 
  11.  FROM galery_album 
  12.  WHERE kategory = '$wiersza[0]' ORDER BY name" );
  13.  
  14. while ( $wiersz_2 = mysql_fetch_array( $select_2, MYSQL_NUM ) ) 
  15. {
  16. echo '<option value="' . $wiersz[ 0 ] . '">' . $wiersz_2[ 0 ] . '</option>'; 
  17. }
  18.  
  19. }
  20.  
  21. echo '</select>';
  22. ?>

Oczywiście mogłem coś przekręcić ponieważ nie wiem dokładnie jakie dokładnie wartości chcesz wyciągnąć ( domyślam się ). I teraz jeżeli wybierze ktoś opcję jakąś to będziesz mógł jej wartość otrzymać poprzez odwołanie się do tablicy $_POST ( $_POST[ 'album_upload'] ) i spokojnie obrobić/dodać do bazy. blink.gif

Cytat
Ale tutaj nie chodzi o tytuł tylko o album

To był tylko przykład, zastosowania, i są to wartości nie odwołujące się do tytułu, lecz tylko dodatkowe, które jak myślałem pomogą Ci wyciągnąć dane z bazy.

Mam nadzieję, że chociaż trochę Ci pomogłem, jednak jeżeli nie to napisz co chcesz osiągnąć na prostym przykładzie, a nie na kodzie, którego nikt nie zna.

Pozdrawiam!
Hectic
Dzięki za pomoc ale w tym kodzie mam dwa SELECT a mi zalęzy zeby wszystko był w jednym...

edit: ten pierwszy sposób był dobry tylko zeby on uzględniał SPACJE biggrin.gif
strife
Cytat(Hectic @ 2006-04-15 21:21:53)
edit: ten pierwszy sposób był dobry tylko zeby on uzględniał SPACJE biggrin.gif

  1. <?php
  2.  
  3. $x = 'argu ment1 (argu ment2)';
  4.  
  5. $jeden = substr( $x, 0, strpos( $x, " (" ) ); 
  6. $dwa  = str_replace( array( "(", ")" ), "", substr( $x, strpos( $x, " (" ) + 1 ) );
  7.  
  8. echo '<pre>';
  9. print_r( "\$jeden = \"$jeden\"\n\$dwa = \"$dwa\"" );
  10. echo '</pre>';
  11.  
  12. ?>

Warunkiem jest postawienie odstępu i nawiasu, w takiej formie jak ma to miejsce w powyższym przykładzie. Mam nadzieję, że wreszcie udało mi się pomóc. blink.gif

Pozdrawiam!
Hectic
Wielkie dzięki ! biggrin.gif teraz działa tak jak powinno i nie ma już żadnych problemów aarambo.gif
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.