Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Klikalny numer telefonu
krzysztof_kf
post 29.01.2019, 12:06:24
Post #1





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Witam, mam problem, z którym od dłuższego czasu borykam się.

Mam pole, w którym są zapisywane numery telefonów, ale nie tylko.

Wygląda to tak
(43) 443-43-44, 653-049-000

w tym polu występują również różne wyrazy itp. itd.

Jest realne, aby z tego pola wyciągnąć tylko numery telefonów, które na urządzeniach mobilnych zamienią się na łącze?
Go to the top of the page
+Quote Post
vokiel
post 29.01.2019, 12:28:32
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Jeśli nie masz możliwości zapisywania numerów w osobnych polach i musisz je wyciągać z treści, to pozostaje regex, a następnie zastępowanie numerów tagiem
  1. <a href="tel:TUTAJ_NUMER">TUTAJ_NUMER</a>


Ten post edytował vokiel 29.01.2019, 12:28:56


--------------------
Go to the top of the page
+Quote Post
krzysztof_kf
post 29.01.2019, 14:15:59
Post #3





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Jak się za to zabrać.

Dobra, poradziłem sobie.

Jednak nie do końca to działa.

Mam taki kod

  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  2. var html = jQuery("div.contact-person-telephone").html();
  3. console.log(html);
  4. html = html.replace(/[0-9]{3}-[0-9]{3}-[0-9]{3}\s+|[0-9]{3}-[0-9]{3}-[0-9]{2}\s/g, function(match) {
  5. return '<a href="tel:' + match + '">Call me</a> ';
  6. });
  7. console.log(html);
  8. jQuery("div.contact-person-telephone").html(html)
  9.  
  10. <?php
  11.  
  12. $test = "test 594-444-304 test1";
  13. ?>
  14. <div class="contact-person-telephone">
  15. <?php echo $test; ?>
  16. </div>


Czemu numer tel. ze zmiennej $test nie zmienia się w odnośnik?
Go to the top of the page
+Quote Post
trueblue
post 29.01.2019, 14:23:22
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Bo wywołujesz kod JS przed wyrenderowaniem DOM, czyli kiedy nie widzi on jeszcze Twojego <div>.


--------------------
Go to the top of the page
+Quote Post
krzysztof_kf
post 29.01.2019, 14:24:20
Post #5





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Tak myślałem, ale jak to zrobić.
Go to the top of the page
+Quote Post
viking
post 29.01.2019, 14:37:00
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


https://api.jquery.com/ready/

Albo przenieść script na koniec strony.


--------------------
Go to the top of the page
+Quote Post
krzysztof_kf
post 29.01.2019, 14:51:07
Post #7





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Wszystko jest ok, ale mam taką zmienną, która wyświetla między innymi nr. tel. w larave. Nie chce działać.

  1. {!! $contact->number !!}
Go to the top of the page
+Quote Post
markonix
post 31.03.2019, 20:26:08
Post #8





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Wg mnie znacznie lepszym pomysłem jest tego zrobienie po stronie PHP wyrażeniem regularnym, a potem wyświetlenie tylko w widoku oczywiście w
  1. {!! !!}
lub zrobienie helpera (jest dużo gotowców, najczęstszy case to wyszukiwanie linków i zmiana ich na linki, tu zasada taka sama tylko numery telefonów są mniej jednolite).

Ten post edytował markonix 31.03.2019, 20:26:42


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 16:45