eval si caractere speciale (apostrof)

Aici postaţi orice este legat de tehnologiile "client side". HTML, HTML5, XHTML, CSS, CSS3, XML, Standarde
Manual JS: http://www.phpromania.net/jsmanual/index.html

Moderatori: eyecon, Moderatori

mihai13
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Dec 30, 2003 5:51 pm

eval si caractere speciale (apostrof)

Mesajde mihai13 » Joi Iun 03, 2004 11:42 pm

salut,

am intr-o pagina php un tabel; din codul sursa

[code]
<td><input type = button value = 'Modifica' onClick = showvalues(4)</td>
<td><a id = a4 value = 'o'reilly'>o'reilly</a></td>
[/code]
pe aceasi pagina

[code]
<form name = 'forma' action = 'add.php' method = 'POST' >
<table border = 0>
...............
<tr>
<td>Autor(i)*</td>
<td><INPUT name=authors type=text ></td>
</tr>
.........................
</table>
</form>
[/code]

si functia (simplificat)
[code]
function showvalues(id)
{
var doc;
var authors;
doc = document.forma;

authors = eval('a'+ id);
doc.authors.value = authors.value;
}
[/code]

Pare o problema arhicunoscuta, am gasit o multime de exemple in care se foloseste functia JavaScript replace, dar nu am reusit sa aduc in textboxul formei cuvantul intreg adica o'reilly ci numai o sau o\ daca am avut ca value ='o\'reilly'.

cum sa fac ? (sunt si incepator si toate incercarile mele au fost empirice)

as putea sa modific valoarea lui a4 in
[code]<td><a id = a4 value = 'o'reilly'>o'reilly</a></td>
[/code], a.i. sa reusesc sa o prelucrez cu JavaScript dar cum?

ideea este ca daca tot am datele pe pagina sa le aduc direct pe forma pt. modificare; cu toate ca as putea sa mai interogez inca o data baza de date
si sa aduc ceea ce vreau sa modific - am scapat de orice probleme cu caractere speciale dar mi se pare mai putina eleganta solutia ca sa nu vorbesc de incarcarea inutila a bd.

multumesc,
mihai

------------------------------

am rezolvat cu

[code]
$authors_value = "'".htmlentities($authors, ENT_QUOTES)."'";
[/code]
cel putin pentru apostrof . pentru "" sunt alte probleme dar in fine



Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Vin Iun 04, 2004 12:03 pm

Nu am inteles ce vrei tu exact sa faci... vrei sa poti introduce caracterele speciale in bd mysql sau ce?
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
smallAdmin
Average Member
Mesaje: 117
Membru din: Vin Mai 21, 2004 11:20 am
Localitate: Bucuresti
Contact:

Mesajde smallAdmin » Vin Iun 04, 2004 12:53 pm

Birkoff scrie:Nu am inteles ce vrei tu exact sa faci... vrei sa poti introduce caracterele speciale in bd mysql sau ce?

lasa ca zice ca a rezolvat :D e bine si asa.

voia de fapt sa scrie <input type='text' value='o& #039;reiley'>
unde & #039; e apostrof... in HTML nu se escapeaza cu \'

la fel, daca folosesti ", faci asa
<input type="text" value="some &quot; text">
unde &quot; e ghilimele.
NEXT !
--
Aurelian Scarlat
http://aurelian.scarlat.ro

mihai13
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Dec 30, 2003 5:51 pm

Mesajde mihai13 » Vin Iun 04, 2004 9:34 pm

[quote="Birkoff"]Nu am inteles ce vrei tu exact sa faci... vrei sa poti introduce caracterele speciale in bd mysql sau ce?[/quote]

inseamna ca e vina mea ca nu am explicat corect.
vreau sa afisez informatiile dintr-un tabel de pe pagina (aduse din bd) intr-o forma de pe aceeasi pagina.

dau click pe un buton si valorile din linia repectiva sunt transferate in forma.

mihai13
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Dec 30, 2003 5:51 pm

Mesajde mihai13 » Vin Iun 04, 2004 10:00 pm

[quote="smallAdmin"] la fel, daca folosesti ", faci asa
<input type="text" value="some &quot; text">
unde &quot; e ghilimele.[/quote]

cu ghilimelele e totusi alta problema. in codul sursa am:
[code]
<td><a id = a4 value = 'apo'strof ghi&amp;quot;limele'>apo'strof ghi&quot;limele</a></td>
[/code] si se afiseaza corect adica - apo'strof ghi"limele
iar in textbox din forma obtin:
apo'strof ghi&quot;limele

mai trebuie sa caut sa vad cum afisez si ghilimelele corect - presupun totusi ca nu sunt primul care se loveste de aceasta problema - dar daca la fiecare caracter special se intampla la fel mai bine nu mai permit sa se salveze astfel de caractere la introducere date si 'am rezolvat'

Avatar utilizator
smallAdmin
Average Member
Mesaje: 117
Membru din: Vin Mai 21, 2004 11:20 am
Localitate: Bucuresti
Contact:

Mesajde smallAdmin » Vin Iun 04, 2004 10:13 pm

din cate stiu eu, majoritatea folosesc

Cod: Selectaţi tot

<input type="text" value="some value">

in loc de

Cod: Selectaţi tot

<input type='text' value='some value'>

amandoua variantele sunt acceptate de browsere.

eu folosesc numai cu " si singura problema e sa inlocuiesc " cu &quot; iar ' le las asa cum sunt.
ce vreau sa spun e ca inlocuiesti numai ce ai nevoie, restul e afisat asa cum e.
cum fososesti tu value='some value' ai nevoie sa inlocuiesti numai '. " le lasi asa cum sunt.
sper ca am fost clar.
NEXT !

--

Aurelian Scarlat

http://aurelian.scarlat.ro

mihai13
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Dec 30, 2003 5:51 pm

Mesajde mihai13 » Sâm Iun 05, 2004 1:39 pm

[quote="smallAdmin"]cum fososesti tu value='some value' ai nevoie sa inlocuiesti numai '. " le lasi asa cum sunt.
[/quote]

pai
$authors_value = "'".htmlentities($authors, ENT_QUOTES)."'";
deci functia converteste si ' si ". nu am cum sa las " asa cum sunt

[quote]
<input type='text' value='some value'>
[/quote]
eu nu am nicaieri pe pagina asa ceva
am numai de genul
<INPUT name=authors type=text>


Înapoi la “HTML/JavaScript/CSS”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori