Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: data w polu input
Forum PHP.pl > Forum > Przedszkole
Lonas
Hej, mam nastepujacy problem.
W polu tworzenia dokumenu znajduje sie pole ktore podaje mi date

  1. <input type="text" name="datasprzed" value="<?php echo(date("Y.m.d"));?>" />


Mam problem zeby pole z inputa przeslac do nastepnego pliku, nie moge uzywac form action poniewaz jest juz uzyte do czego innego, chcialem dane wrzucic do sesji ale nie dziala nie mam juz pomyslu.

Prosze o pomoc
dtb
  1. <?php
  2. setcookie ('data', date (...));
  3. $_COOKIE['data']
  4. ?>
Lonas
to działa smile.gif tylko, jeśli teraz ktos zmieni wartosc daty w inpucie to do bazy danych nie wpisze sie ta zmieniona data tylko wskazana w ciasteczku sad.gif


a moge do cookies wpisac wartosc inputa ?

kombinuje z czyms takim żeby sprawdzić czy podziala ale .... sad.gif

  1. <input type="text" name="datasprzed" value="<?php echo (date ("Y.m.d")); ?>" />
  2. <?
  3. setcookie ('data',$datasprzed );
  4. $_COOKIE['data'];
  5. ?>
  6. <?print $_COOKIE['data'];?>
vtuner
  1. <?php
  2. $data = date("Y.m.d")
  3. echo'<input type="text" name="datasprzed" value='.$data.' />';
  4. ?>


to dziala
Lonas
vtuner ok tak też się wyświetli smile.gif
ale chodzi o to żeby teraz .. jeśli użytkownik zmieni sobie tą date w inpucie to żeby zostala ona zapisana i w nastepnym dokumencie jej wartosc zostanie wpisana do bazy danych.


to znaczy tutaj dziala:

  1. <input type="text" name="datasprzed" value="<?php echo (date ("Y.m.d")); ?>" />
  2. <?
  3. setcookie ('data',$datasprzed );
  4. $_COOKIE['data'];
  5. ?>
  6.  
  7. <a href="test2.php">utwórz dokument</a>
  8.  


w test 2 jest wyswietlenie cookies
  1. <?print $_COOKIE['data'];?>


ale zmiana daty w input nie jest uwzgieldniana
dtb
<form><input type="text" name="datasprzed" value="<? date ("Y.m.d") ?>" /></form>
i spradź czy teraz jest zmienna _get['datasprzed']

EDIT: mozesz jeszcze przy wysylaniu formularza za pomoca js (onclick) ustawic ciasteczko (ale w javascript nie php) a potem normalnie go odebrac za pomoca php
Lonas
  1. <form><input type="text" name="datasprzed" value="<? print date ("Y.m.d") ?>" /></form>
  2.  
  3. <?
  4.  
  5. print $_get['datasprzed'];
  6.  
  7.  
  8.  
  9.  
  10. ?>


wywala błąd że jest niezdefiniowana zmienna czyli nie widzi nazwy tego inputa :/

wolałbym to zarobić w phpcu na javiescript wogóle sie nie znam
dtb
eureka!

do kazdego formularza dodaj inputa:
  1. <input type="hidden" name="data_wyslij" value="<span style='color:orange'></span>" />

i dodaj do inputow typu submit:
  1. onclick="data_wyslij.value=datasprzed.value"


teraz wystarczy:
  1. <?php
  2. echo $_GET['data_wyslij'];
  3. ?>

i po sprawie
dtb
skoro jest w inpucie i zalezy na mozliwosci zmiany tego inputa, to logika podpowiada ze data ta jest ustawiana przez osobe przegladajaca strone.
Lonas
No może być ustawiana ale nie musi. Domyślnie pojawia się data dzisiejsza ale ktoś może chcieć wystawić z datą wczorajszą np

mam to zrobione w ten sposób ale pisze że jest niezdefiniowany index data wyslij

  1. <form><input type="hidden" name="data_wyslij" value="<span style='color:orange'></span>" 
  2.  
  3. /></form>
  4.  
  5. <input type="text" name="datasprzed" value="<?php echo(date("Y.m.d"));?>" />
  6.  
  7.  
  8. <input type="submit" name="Submit" onclick="data_wyslij.value=datasprzed.value">
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. <?php
  16. echo $_GET['data_wyslij'];
  17. ?>



i co jeśli pojawią mi sie 3 inputy z datami sad.gif w jednym data sprzedaży w drugim data wytawienia i w 3 proponowany czas zapłaty, to w każdym trzeba by przesyłac dane submitem ?
nospor
bo jesli nie wyslesz formularza to nie ma takiego indexu. pozatym formularz domyslnei jest wysylany metoda post wiec musisz pobierac dane z $_POST a nie $_GET.

A inne inputy tez sie przesylaja razem z formularzem,

pozatym wszystkei pola musze byc w for,mularzu, anie tylko hidden
Lonas
  1. <form><input type="hidden" name="data_wyslij" value="<span style='color:orange'></span>" />
  2.  
  3. <input type="text" name="datasprzed" value="<?php echo(date("Y.m.d"));?>" />
  4.  
  5.  
  6. <input type="submit" name="Submit" onclick="data_wyslij.value=datasprzed.value">
  7. </form>



i teraz musze użyć form action żeby przejsc np do test2 w którym będzie

  1. <?php
  2. echo $_POST['data_wyslij'];
  3. ?>


tylko form action w moim pliku jest juz użyte i chciałym to ominąć sad.gif
php programmer
Cytat(L.Pociask @ 2005-12-14 15:40:10)
chcialem dane wrzucic do sesji ale nie dziala

A użyłeś:
session_start();
questionmark.gif

  1. <?php
  2.  
  3. $_SESSION['data'] = date();
  4.  
  5. ?>
Lonas
Tak użyłęm, tylko czy mogę zapisać do sesji dane z inputa które wpisze użytkownik, domyślnie ustawia sie data dzisiejsza i jeśli zmieni na wczorajsza to zapisze sie ona do sesji ?


edit : nospor w tym przypadku działa ale jak mogę to zrobić bez form action bo mam już go użytego,
miałem wczesniej podobny problem ale udało mi się użyć sesji i działa,
tutaj nie chce działać

  1. <form action="test2.php"><input type="hidden" name="data_wyslij" value="<span 
  2.  
  3. style='color:orange'></span>" />
  4.  
  5. <input type="text" name="datasprzed" value="<?php echo(date("Y.m.d"));?>" />
  6.  
  7.  
  8. <input type="submit" name="Submit" onclick="data_wyslij.value=datasprzed.value">
  9. </form>
php programmer
  1. <?php
  2.  
  3. if (isset($_SESSION['data'])) $data_w_polu = $_SESSION['data']);
  4.  else $data_w_polu = date("Y-m-d");
  5.  
  6. ?>
Lonas
bład składni w tym wierszu

  1. <?php
  2. if (isset($_SESSION['data'])) $data_w_polu = $_SESSION['data']);
  3. ?>
php programmer
na końcu jest niepotrzebny nawias zamykający
tuż przed średnikiem
Lonas
czyli powinno to wygladac tak ?

plik tescik.php

  1.  
  2.  
  3. $db = mysql_pconnect("localhost", "root");
  4. mysql_select_db("jakar"); 
  5. if (!$db) {  
  6. print "wystąpił błąd w połączeniu";  
  7. exit;
  8. }
  9. ?>
  10.  
  11.  
  12. <input type="text" name="data_w_polu" value="<?php echo(date("Y.m.d"));?>" />
  13. <?
  14. if (isset($_SESSION['data'])) $data_w_polu = $_SESSION['data'];
  15.  else $data_w_polu = date("Y-m-d");
  16.  
  17. ?>
  18.  
  19.  
  20. <a href="test2.php">utwórz dokument</a>


plik test2.php

  1. echo $_SESSION['data'];
  2. ?>


wywala bład w test2
Notice: Undefined index: data in c:\program files\easyphp1-8\www\baza\tes\test2.php on line 2
php programmer
nie do końca
zmienna $data_w_polu powinna wylądowąć w parametrze value a nie name

poza tym najpierw powinieneś ustawić zmienną a potem wyświetlić pole
a u ciebie jest na odwrót

poprawiony fragment:

  1. <?
  2. if (isset($_SESSION['data'])) $data_w_polu = $_SESSION['data'];
  3. else $data_w_polu = date("Y-m-d");
  4. ?>
  5. <input type="text" name="data_w_polu" value="<? echo $data_w_polu;?>" />
Lonas
czyli jest tak :

  1.  
  2.  
  3. $db = mysql_pconnect("localhost", "root");
  4. mysql_select_db("jakar"); 
  5. if (!$db) {  
  6. print "wystąpił błąd w połączeniu";  
  7. exit;
  8. }
  9.  
  10. if (isset($_SESSION['data'])) $data_w_polu = $_SESSION['data'];
  11. else $data_w_polu = date("Y-m-d");
  12. ?>
  13. <input type="text" name="data_w_polu" value="<? echo $data_w_polu;?>" />
  14.  
  15.  
  16.  
  17.  
  18. <a href="test2.php">utwórz dokument</a>


niestety dalej wywala bład o niezdefiniowanym indexie sad.gif
php programmer
no wiec zrób tak
w tym linku daj
<a href="java script:Ustaw()">asdfdsaf</a>

gdzie ustaw to funkcja javasript ustawiająca zmienną sesji data

ale nie wiem czy w js sie da to
można też przekazać przez GET a potem przepisać (w pliku php do kótergo prowadzi ten link) jednorazowo
z GET do SESSION
mike
  1. <?php
  2.  
  3. $db = mysql_pconnect( 'localhost', 'root' );
  4. mysql_select_db( 'jakar' ); 
  5. if( ! $db )
  6. {
  7. print 'wystąpił błąd w połączeniu';
  8. exit;
  9. }
  10.  
  11. $_SESSION['data'] = ( empty( $_SESSION['data'] ) ) ? date("Y-m-d") : $_SESSION['data'];
  12.  
  13. ?>
  14.  
  15. <input type="text" name="data_w_polu" value="<?= $_SESSION['data']; ?>" />
  16.  
  17. <a href="test2.php">utwórz dokument</a>
  18. ?>


----
@php_programmer Jak już napisałs coś głupiego i zorientowałeś się zanim ktoś odpowiedział. To wywal posta.
Lonas
[/php]
  1. <?php
  2.  
  3. $db = mysql_pconnect( 'localhost', 'root' );
  4. mysql_select_db( 'jakar' ); 
  5. if( ! $db )
  6. {
  7.     print 'wystąpił błąd w połączeniu';
  8.     exit;  
  9. }  
  10.  
  11. $_SESSION['data'] = ( empty( $_SESSION['data'] ) ) ? date("Y-m-d") : $_SESSION['data'];
  12.  
  13. ?>
  14.  
  15. <input type="text" name="data_w_polu" value="<?= $_SESSION['data']; ?>" />
  16.  
  17. <a href="test2.php">utwórz dokument</a>


NIestety po wpisaniu innej daty w pliku test2 nie pojawia sie zmiana tylko pojawia sie caly czas akutalna data sad.gif

test2:
  1. echo $_SESSION['data'];
  2. ?>
pawella
PROPONUJE załatwienie twojego problemu po stronie przeglądarki za pomocą js i cookie.
onunload="funkcja js wczytująca dane z pola do cookie"

a na następnej stronie $_COOKIE['nazwa_zmiennej'];


pozdrawiam
php programmer
Hej, poniżej sprawdzony działający skrypt:

  1. <?
  2.  
  3. if (isset($_GET['data']))
  4.    $_SESSION['data'] = $_GET['data']; else
  5.  
  6. if (!isset($_SESSION['data']))
  7.     $_SESSION['data'] = Date("Y-m-d");
  8.  
  9. echo '<input type="text" name="data" id="data" value="'.$_SESSION['data'].'" />';
  10. echo '<a href="javascript:przeladuj()" id="przeladuj">przeladuj</a>';
  11.  
  12. ?>
  13. <script language="javascript">
  14. function przeladuj(){
  15. location = 'data.php?data='+document.getElementById('data').value;
  16. }
  17. </script>





wersja z dwoma inputami
  1.  
  2. //--------------pierwszy input-------------
  3.  
  4. if (isset($_GET['data']))
  5.  $_SESSION['data'] = $_GET['data']; else
  6.  
  7. if (!isset($_SESSION['data']))
  8. $_SESSION['data'] = Date("Y-m-d");
  9.  
  10. echo '<input type="text" name="data" id="data" value="'.$_SESSION['data'].'" />';
  11.  
  12. //--------------drugi input-----------------
  13.  
  14. if (isset($_GET['data2']))
  15.  $_SESSION['data2'] = $_GET['data2']; else
  16.  
  17. if (!isset($_SESSION['data2']))
  18. $_SESSION['data2'] = Date("Y-m-d");
  19.  
  20. echo '<input type="text" name="data2" id="data2" value="'.$_SESSION['data2'].'" />';
  21.  
  22.  
  23. echo '<a href="javascript:przeladuj()" id="przeladuj">przeladuj</a>';
  24.  
  25. ?>
  26. <script language="javascript">
  27. function przeladuj(){
  28. location = 'data.php?data='+document.getElementById('data').value+'&data2='+document.getElementById('data2').value;
  29. }
  30. </script>
Lonas
Pieknie dziekuje działa smile.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.