Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Love Lies Bleeding - 2024

Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...
 Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...
 problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...

Jante noi shitbox
 Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio

Un nou pericol pt batrani
 

O mica nedumerire in PHP

- - - - -
  • Please log in to reply
22 replies to this topic

#1
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
Iata un exemplu simplu: Am facut un mic calculator in PHP... mai pe scurt am 2 fisiere index.php si action.php (mai jos voi atasa codul) si problema e ca datele se proceseaza in action.php si raspunsul tot e acolo insa vreau ca solutia sa imi apara inapoi in index.php de unde introduc si datele.. in casuta "Raspuns".. rog sa ma ajute cineva...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Calculator</title>
</head>

<body>
<form action="action.php" method="post" name="Calculator">
  <label>Introduceti o variabila <br />
  <input name="variabila" type="text" maxlength="15"/>
  </label>
  <p>
  Alegeți operația dorită <br>
	<select name="operatia" size="1" >
	  <option>Adunarea
	  <option>Scaderea
	  <option>Inmultirea
	  <option>Impartirea
	</select>
	</label>
  </p>
<label>Introduceti o alta variabila <br />
	<input name="variabila2" type="text" maxlength="15"/>
	</label>
</p>
  <p>
	<label>
	<input type="submit" value="Răspuns:"/>
	<input name="rezultatul" type="text" value="" />
	</label>
  </p>
</form>
</body>
</html>

<?php 
$operatia=$_POST['operatia'];
$variabila=$_POST['variabila'];
$variabila2=$_POST['variabila2'];
$rezultatul=$_POST['rezultatul'];

if ($operatia == "Adunarea")
{
$rezultatul = $variabila + $variabila2;
}

if ($operatia == "Scaderea")
{
$rezultatul = $variabila - $variabila2;
}
if ($operatia == "Inmultirea")
{
$rezultatul = $variabila * $variabila2;
}

if ($operatia == "Impartirea")
{
$rezultatul = $variabila / $variabila2;
}
echo $rezultatul;
?>

Attached Files



#2
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
la un formular ai un atribut numit : "action"

valoarea acelui atribut semnifica fisierul spre care vor fi trimise datele din formular

#3
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
Pai da... spre fisierul action.php am facut legatura cu atributul "action" dar inapoi spre index.php cum sal fac? Ca imi da eroare... si-apoi rezultatul vreau sa scrie in casuta "Raspuns"...

#4
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View PostLuxeon, on 8th July 2009, 12:03, said:

Pai da... spre fisierul action.php am facut legatura cu atributul "action" dar inapoi spre index.php cum sal fac? Ca imi da eroare... si-apoi rezultatul vreau sa scrie in casuta "Raspuns"...
imediat dupa procesare inainte sa trimiti nimic catre pagina poti folosi header("Location: index.php");

si sa ii trimiti un parametru $_GET cu rezultatul;

#5
adormitu

adormitu

    Member

  • Grup: Members
  • Posts: 384
  • Înscris: 28.08.2008
<?php 

// valoarea o returnezi nu o primesti ->
$rezultatul=0;

// calculele...


// echo $rezultatul;

header('Location: index.php?rezultatul=$rezultatul');
?>

iarasi in index.php

 <input name="rezultatul" type="text" value="<?php echo (int)$_GET['rezultatul']; ?>" />


#6
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
OOOoo va multumesc mult de tot... pasul acesta nu-l intelegeam mai intainte acum mi-i clar

#7
again

again

    WEB DUDE

  • Grup: Senior Members
  • Posts: 7,068
  • Înscris: 21.10.2005
mai usor e ca in fisierul index.php sa faci un if si sa vezi daca butonul de submit a fost apasat iar action-ul sa fie tot index.php

if(isset($_POST['submit'])) {
  
    // aici faci prelucrearea informatiilor si eventual afisezi raspunsul sau creezi o variabila cu raspunsul ca s-o afisezi in formular

}
else {}

echo'formular';

asa scapi si de 2 fisiere iar datele nu sunt la vedere ca si cu $_GET

#8
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
OK voi incerca si asa... pur si simpu sunt incepator in php si am scris asa cum am gindit....  ;)

#9
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
Am inteles ce ati avut in vedere.. pe parcurs in acest mod m-am intilnit cu o alta problema... am facut un exemplu aparte ca sa intelegeti ce nu inteleg eu...

<html>
<body>
<input name="x" type="text">
<input name="y" type="submit" value="oK">
<?php
if(isset($_POST['y'])) /* sau in loc de "y" este necesar de pus "submit"?? dat tot nu merge */
{
echo $x;
}
else {echo "tralala";} 
?>
</body>
</html>

care e greseala ca nu imi vede variabila x? am mai incercat sa pun si $x=$_POST['x']
merci moolt...

Edited by Luxeon, 09 July 2009 - 17:22.


#10
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View PostLuxeon, on 9th July 2009, 18:19, said:

Am inteles ce ati avut in vedere.. pe parcurs in acest mod m-am intilnit cu o alta problema... am facut un exemplu aparte ca sa intelegeti ce nu inteleg eu...

<html>
<body>
<input name="x" type="text">
<input name="y" type="submit" value="oK">
<?php
if(isset($_POST['y'])) /* sau in loc de "y" este necesar de pus "submit"?? dat tot nu merge */
{
echo $x;
}
else {echo "tralala";} 
?>
</body>
</html>

care e greseala ca nu imi vede variabila x? am mai incercat sa pun si $x=$_POST['x']
merci moolt...

nu ai si tu un form acolo ceva? cu un action=""  method="POST"?

#11
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009

View Postalin19, on 9th July 2009, 13:03, said:

nu ai si tu un form acolo ceva? cu un action=""  method="POST"?

Adica asa? Da Actionul cui sa-l pun? caci eu fac acum totul intr-un file...

<html>
<body>
 <form name="form" action="" method="post">
<input name="x" type="text">
<input name="y" type="submit" value="oK">
</form>
<?php
$x=$_POST['x'];
if(isset($_POST['submit'])) 
{
echo $x;
}
else {echo "tralala";} 
?>
</body>
</html>



#12
luk4

luk4

    Senior Member

  • Grup: Senior Members
  • Posts: 2,149
  • Înscris: 29.04.2008
Pune la action numele fisierului asta cu form-ul

#13
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
Gata m-am descurcat... iata calculatorul intr-un singur file...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Calculator</title>
<script type="text/javascript">
</script>
</head>
<body>
<?php
$x=$_POST['x'];
$y=$_POST['y'];
$z=$_POST['z'];
$operatia=$_POST['operatia'];
if(isset($_POST['raspuns'])) 
{
	switch ($operatia)
{
case "Adunarea":
$z=$x+$y;
header("Location: index.php?z=$z"); 
break;
case "Scaderea":
$z=$x-$y;
header("Location: index.php?z=$z"); 
break;
case "Imultirea":
$z=$x*$y;
header("Location: index.php?z=$z"); 
break;
case "Impartirea":
$z=$x/$y;
header("Location: index.php?z=$z"); 
break;
}
}
?>
<table width="678" border="15" align="center" cellpadding="10" bordercolor="#999999" bgcolor="#F0F0F0">
  <tr>
	<td width="622">
<form name="form" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="x" type="text" size="18" maxlength="18"> x  
<br><br>
<select name="operatia" size="1">
		<option>Adunarea</option>
		<option>Scaderea</option>
		<option>Imultirea</option>
		<option>Impartirea</option>
	  </select>
 <br><br>
	<input name="y" type="text" size="18" maxlength="18"> y
   <br><br>
	<input name="z" type="text" size="18" maxlength="18" value="<?php echo (float)$_GET['z']; ?>">
 <input name="raspuns" type="submit" value="Raspuns">
</form>
 </td>
  </tr>
</table>
</body>
</html>
</body>
</html>


#14
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Calculator</title>
<script type="text/javascript">
</script>
</head>
<body>
<?php
$x=$_POST['x'];   ce se intampla cand se acceseaza prima oara pagina si nu exista $_POST?
$y=$_POST['y'];
$z=$_POST['z'];
$operatia=$_POST['operatia'];
if(isset($_POST['raspuns']))
{
switch ($operatia)
{
case "Adunarea":
$z=$x+$y;
header("Location: index.php?z=$z");
break;
case "Scaderea":
$z=$x-$y;
header("Location: index.php?z=$z");
break;
case "Imultirea":
$z=$x*$y;
header("Location: index.php?z=$z");
break;
case "Impartirea":
$z=$x/$y;
header("Location: index.php?z=$z");
break;
}
}
?>
<table width="678" border="15" align="center" cellpadding="10" bordercolor="#999999" bgcolor="#F0F0F0">
  <tr>
    <td width="622">
<form name="form" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post"> puteai sa lasi action=""
<input name="x" type="text" size="18" maxlength="18"> x  
<br><br>
<select name="operatia" size="1">
        <option>Adunarea</option>option value="Adunare"
        <option>Scaderea</option>
        <option>Imultirea</option>
        <option>Impartirea</option>
      </select>
<br><br>
    <input name="y" type="text" size="18" maxlength="18"> y
   <br><br>
    <input name="z" type="text" size="18" maxlength="18" value="<?php echo (float)$_GET['z']; ?>"> operatorul de conversie (float) cred ca este inutil aici, eventual un number_format sa iti afiseze numarul cum vrei tu
<input name="raspuns" type="submit" value="Raspuns">
</form>
</td>
  </tr>
</table>
</body>
</html>
</body>
</html>

Edited by alin19, 10 July 2009 - 08:29.


#15
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
Merci mult... voi tine cont de observatii...

Dar iata ca doresc sa-i fac un update asa-zisului meu calculator..  (am trecut deja la un singur formular - totul merge ca pe roate)
Am creat butoane de la 0 la 9 care afisheaza in spatiul rezervat cifrele atribuite lor...
cu numerele formate de o singura cifra e clar... dar e problema pentru mine cu cele formate din doua sau mai multe cifre... si anume ma intereseaza daca PHP poseda vrio functie care sa citeasca cifrele in ordinea tastarii lor... de exemplu au fost tastate cifrele in ordinea urmatoare...:
if(isset($_POST['trei'])  {}
if(isset($_POST['unu'])  {}
if(isset($_POST['doi'])   {}
deci in formular trebuie sa-mi arate: 312
cum sa fac ca ele sa fie afisate in aceashi ordine... (nu ma refer la cazuri particulare.. ci la general) M-am gindit sa fac un sir de aranjamente insa se primesc prea multe... stiu cum se le unesc (ex. $a.$B) dar sa pastrez ordinea lor de tastare nu.... va rog macar un indiciu..

Edited by Luxeon, 10 July 2009 - 18:09.


#16
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View PostLuxeon, on 10th July 2009, 18:57, said:

Merci mult... voi tine cont de observatii...

Dar iata ca doresc sa-i fac un update asa-zisului meu calculator..  (am trecut deja la un singur formular - totul merge ca pe roate)
Am creat butoane de la 0 la 9 care afisheaza in spatiul rezervat cifrele atribuite lor...
cu numerele formate de o singura cifra e clar... dar e problema pentru mine cu cele formate din doua sau mai multe cifre... si anume ma intereseaza daca PHP poseda vrio functie care sa citeasca cifrele in ordinea tastarii lor... de exemplu au fost tastate cifrele in ordinea urmatoare...:
if(isset($_POST['trei'])  {}
if(isset($_POST['unu'])  {}
if(isset($_POST['doi'])   {}
deci in formular trebuie sa-mi arate: 312
cum sa fac ca ele sa fie afisate in aceashi ordine... (nu ma refer la cazuri particulare.. ci la general) M-am gindit sa fac un sir de aranjamente insa se primesc prea multe... stiu cum se le unesc (ex. $a.$B) dar sa pastrez ordinea lor de tastare nu.... va rog macar un indiciu..

ai la javascript un event in cazul in care se apasa o tasta sa citeasca tasta apasata si eventual sa o introduca intr-un input care sa submit sa trimita numarul format catre php

#17
Brandoo

Brandoo

    Junior Member

  • Grup: Members
  • Posts: 82
  • Înscris: 19.10.2005
declari o variabila globala de javascript (numar) care reprezinta numarul care va aparea pe 'ecranul' calculatorului tau:
<script>
   var numar = '';   
</script>

acest numar o sa il ai intr-un obiect de tip hidden pe care o sa-l citesti dupa ce submitezi formularul
   <input type='hidden' name='nrTastat' id='nrTastat' >

apoi la fiecare buton de cifra   pui eventul pt onclick:
(ex)
   <input type='button' name='unu' value='1' onclick='faNr(this.value)'>

codul sursa al functiei faNr() este:

<script>
   
   function faNr(cifra)
   {
	   numar +=cifra; 
	   document.getElementById('nrTastat').value=numar;
   }

</script>

apoi cand se apasa tasta de submit, citesti numarul in php

	 if (isset($_POST['raspuns']))
	 {
		  $numarulDeOperat = $_POST['nrTastat'];
	 }

Edited by Brandoo, 11 July 2009 - 16:24.


#18
Luxeon

Luxeon

    Junior Member

  • Grup: Members
  • Posts: 30
  • Înscris: 26.05.2009
Merci il incerc indata :rolleyes:

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate