Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML, AJAX _ [jQuery] Klikalny numer telefonu

Napisany przez: krzysztof_kf 29.01.2019, 12:06:24

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?

Napisany przez: vokiel 29.01.2019, 12:28:32

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. <http://december.com/html/4/element/a.html href="tel:TUTAJ_NUMER">TUTAJ_NUMER</http://december.com/html/4/element/a.html>

Napisany przez: krzysztof_kf 29.01.2019, 14:15:59

Jak się za to zabrać.

Dobra, poradziłem sobie.

Jednak nie do końca to działa.

Mam taki kod

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


Czemu numer tel. ze zmiennej $test nie zmienia się w odnośnik?

Napisany przez: trueblue 29.01.2019, 14:23:22

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

Napisany przez: krzysztof_kf 29.01.2019, 14:24:20

Tak myślałem, ale jak to zrobić.

Napisany przez: viking 29.01.2019, 14:37:00

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

Albo przenieść script na koniec strony.

Napisany przez: krzysztof_kf 29.01.2019, 14:51:07

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 !!}

Napisany przez: markonix 31.03.2019, 20:26:08

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).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)