Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
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

Ar trebuii sa vindem imobiliarele...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 Noul format Jpegli iși propu...

Dade, dade

Probleme accesare nr test telefon

Parola la lock screen
 

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

 colombo2003, 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:

 colombo2003, 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

Bun venit pe Forumul Softpedia!

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