Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Plasa de umbrire peste gard de pl...

O smecherie pe care nu o inteleg

Balcon parter fara acte

unde gasesc un speed bag in bucur...
 Programe TV cu altfel de sporturi

Laptop "bun la toate" max...

navigatie noua vw tiguan

ctfmon.exe - System Error (in Saf...
 Ați prins vremurile cand 120 Volț...

Whatsapp nu afișeaza numele ...

Medii admitere Politehnica Bucure...

Se extinde Baza de la Kogalniceanu
 Politist mutilat de caine in curt...

Trotineta- cat rezista?

Windows 11 si inregistrare de pe ...

Cont Facebook spart
 

Afisare increment contor la schimbare valoare combo

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

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Ma chinui si ma invart de ceva vreme in jurul cozii... Posted Image si nu reusesc. Va rog un pic de ajutor.

Se da un <form> care contine, printer altele, si un combo (<select>). Valorile din acest combo sunt: " ", L, A, M, S si P.

Fiecare dintre aceste cinci valori de mai sus (L, A, M, S si P, fara blanc), are atasat un fisier .txt care nu are decat o singura linie, de fapt numar. La inceput toate valorile sunt 1.
Pe masura ce tot folosesc formularul si fac submit, valorile din fisiere se vor incrementa (si vor fi diferite).

Doresc ca atunci cand schimb valoarea din combo, sa mi se (citeasca si) afiseze numarul (curent) din acest fisier; numarul corespunzator fireste. Si nu mai am idei cum si ce as putea face... Oare sa fie de la faptul ca se amesteca javascript cu php?

Am incercat sa fac afisarea cu print din scriptul php si in pagina formularului, si acolo unde vreau sa fac afisarea doar sa include scriptul, dar nu am reusit nimic.
Am incercat ca in script sa am doar contorul (fara instructiunea de print), sa includ in pagina formularului scriptul oho si apoi, acolo unde vreau sa afisez valoarea din contoar, sa fac { print $contour }' dar nici asa nu am reusit.

Fie mi se bloca pagina, fie, nu inteleg si nu stiu de ce, valoarea implicita din combo se populeaza cu ultima valoare (implicita la refresh) si cu afisarea (ce-i drept corecta) a contoarului (din fisierul .txt afferent ultimei valori din combo).

Codurile arata cam asa:
...
...
...
<body>
...
...
<!--?php include('scripts/codpom.php'); ?-->	
<form action="Page.php" method="post" accept-charset="UTF-8">
<table id="formular">
<tr>
<td><label for="pom">Tip produs:</label></td>
<td>
<select name="pom" id="pom" onchange="tipom()">
	 <option></option>
	 <option value ="L" <?php if ($_POST['pom']=='L') { echo 'selected'; } ?>>L</option>
	 <option value ="A" <?php if ($_POST['pom']=='A') { echo 'selected'; } ?>>A</option>
	 <option value ="M" <?php if ($_POST['pom']=='M') { echo 'selected'; } ?>>S</option>
	 <option value ="S" <?php if ($_POST['pom']=='S') { echo 'selected'; } ?>>S</option>
	 <option value ="P" <?php if ($_POST['pom']=='P') { echo 'selected'; } ?>>P</option>
	 </select></td>
	<td><div id="codpom"></div><!--?php print $counter; ?--></td> // aici ma gandeam si incercam in fel si chip
<td>........</td>
</tr>

<tr>
<td>......</td>
<td><div id="tipom"></div></td>
<td>......</td>
</tr>
...
...
</table>
<form >
<select>

</select>
...
...
</form>
...
...
...
</body>
</html>


Scriptul php (contoar) din /scripts:
<?php
if ($_POST['pom']="L") {
$filename = 'cale/L.txt';
//print "Lit"; // am incercat si asa
}
if ($_POST['pom']="A") {
$filename = 'cale/A.txt';
}
if ($_POST['pom']="M") {
$filename = 'cale/M.txt';
}
if ($_POST['pom']="S") {
$filename = 'cale/S.txt';
}
if ($_POST['pom']="P") {
$filename = 'cale/P.txt';
}

$fp = fopen( $filename,"r"); // open it for READING ("r")
$counter = fread($fp, filesize($filename) ); // read in value
fclose( $fp ); // close it whilst we work
++$counter; // increase the counter by one
print "$counter"; // print out the new value

$fp = fopen( $filename,"w"); // open it for WRITING ("w")
fwrite( $fp, $counter); // write in the new value
fclose( $fp ); // close it
?>


Scriptul js (pentru ca la schimbarea valorii din combo am nevoie sa afisez cate mesaj text specific, intr-un div (cu id="tipom") cu <p> stilizat in css):
function tipom() {
if(document.getElementById('pom').value == '') {
document.getElementById('tipom').innerHTML = '';
document.getElementById('codpom').innerHTML = '';
}

if(document.getElementById('pom').value == 'L') {
document.getElementById('tipom').innerHTML = '<p id="pom">L</p>';
document.getElementById('codpom').innerHTML = '<?php include "scripts/codpom.php"; ?>'; //aici am incercat iar sa fac ceva
}

if(document.getElementById('pom').value == 'A') {
document.getElementById('tipom').innerHTML = '<p id="pom">A</p>';
document.getElementById('codpom').innerHTML = 'A';
}

if(document.getElementById('pom').value == 'M') {
document.getElementById('tipom').innerHTML = '<p id="pom">M</p>';
document.getElementById('codpom').innerHTML = 'M';
}

if(document.getElementById('pom').value == 'S') {
document.getElementById('tipom').innerHTML = '<p id="pom">S</p>';
document.getElementById('codpom').innerHTML = 'S';
}

if(document.getElementById('pom').value == 'P') {
document.getElementById('tipom').innerHTML = '<p id="pom">P</p>';
document.getElementById('codpom').innerHTML = 'P';
}
}


Multumesc

Edited by colombo2003, 19 April 2015 - 14:04.


#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postcolombo2003, on 19 aprilie 2015 - 13:53, said:

Oare sa fie de la faptul ca se amesteca javascript cu php?

Fie mi se bloca pagina, fie, nu inteleg si nu stiu de ce,
Javascript si php nu se pot amesteca, chiar si daca iti doresti din tot sufletul si faci tot posibilul sa le amesteci.

Pentru ca php ruleaza pe server, care server poate fi in SUA, iar javascript ruleaza in browser, care browser poate fi oriunde in lume.

Cu PHP programezi serverul, cu javascript programezi clientul (browserul).

#3
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Da, stiu foarte bine ca una e una, si alta e alta.

Intre timp, am reusit ceva, cumva, in sensul ca lucrurile sunt cat se poate de clare si de limpezi: asa cum facem afisarea mesajului in div-ul "tipom", in functie de schimbarea valorii din combo, folosind javascript (client-side: pentru ca de fapt eu fac modificarea dinamic pe client), tot asa, valoarea contoarului din fisierul corespunzator trebuie facuta tot cu javascript. Si numai la submit sa apelez un script php care sa imi incrementeze (actualizeze) valorea fisierului corespunzator.

Astfel ca, in scriptul js, trebuie pus (copiat pentru fiecare ramura, cu schimbarea numelui fisierului pentur fiecare ramura):
$('#codpom').load('../codpom/A.txt', function() {
 window.onload();
})



Acum am insa am alta problema: as vrea ca afisarea contoarului sa fie ceva de genul A101, L25; adica sa am in fata o litera (un character) concatenate cu cifrele (contoarul).

Am incercat sa trimit intr-o variabila codul de mai sus si apoi sa fac ceva de genul: fie document.write("A"+cod); fie document.getElementById("codpom").innerHTML = 'A + cod'; (sau ceva de genul). Dar nu prea imi iese.

Ce gresesc? Cum as putea sa fac asta?

Multumesc

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Pai daca stii, atunci stii si ca aici:

View Postcolombo2003, on 19 aprilie 2015 - 13:53, said:

document.getElementById('codpom').innerHTML = '<?php include "scripts/codpom.php"; ?>'; //aici am incercat iar sa fac ceva
ai nevoie de ajax ca sa comunici cu PHP, in javascript fiind, pentru a prelua acea informatie.

#5
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Rezolvat. Credite: Andrey77

PS. Se poate inchide!

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

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