Skocz do zawartości

WP + wysuwany formularz + action="odwołanie do funkcji"


mojeprogramy.com

Rekomendowane odpowiedzi

Kombinuje coś z Wordpressem i w Sidebarze chce w miejsce standardowego wysuwanego pola wstawić kod wysyłania emiala

Chce aby po kliknięciu "Wyślij" wywołała sie funkcja wysywłania e-maila dotetępna poniżej

Wartość <form action=""> więc nie odwołuje się do zewnętrzen strony np. /post.php w której jest kod a do funkcji poniżej

sidebar.php

...

<h1 class="title entry-title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a><?php edit_post_link(' Edytuj','',''); ?></h1>

<div class="postcontent">

<?php the_content('(continue reading...)'); ?></div>

<span class="linkpages"><?php wp_link_pages(); ?></span><div class="cleared"></div>

</div>

<div id="comments">

<?php if (function_exists('wp_list_comments')): ?>

<!-- WP 2.7 and above -->

<?php comments_template('', true); ?>

<?php else : ?>

<!-- WP 2.6 and below -->

<?php comments_template(); ?>

<?php endif; ?>

</div>

<!-- kod wysuwanego formularza -->

<div id="bit" class="loggedout-follow-normal" style="bottom: 0px; ">

<a class="bsub open" href="javascript:void(0)"><span id="bsub-text">Twoja inicjatywa :)</span></a>

<div id="bitsubscribe" class="open">

<h5 style="font-size:14px;"><label for="loggedout-follow-field">Jaki program polecasz?</label></h5>

<p>jako alternatywę dla opisywanego</p>

<form action="" method="post" onclick="return slij()">

<p><input type="program" name="" style="width: 95%; padding: 1px 2px;outline:none" onclick="value=''" value="" id="loggedout-follow-field"></p>

<input name="uri" type="hidden" value="WidgetCraft" /><input name="loc" type="hidden" value="en_US" />

<p id="bsub-subscribe-button"><input type="submit" value="Wyślij"></p>

</form>

</div>

</div>

<!-- kod funkcji -->

<?php

function slij() {

if($_POST && $_POST['program']) {

$_conf_mail_subiect = "Temat wiadomosci 2";

$program = $_POST['program'];

$_conf_header_mail

="From:  <$_conf_mail_to>

Reply-To:

Return-Path:

MIME-version: 1.0

Content-type: text/html; charset=UTF-8

Content-transfer-encoding: 8BIT

";

$_conf_mail_to = "adres@o2.pl";

$_conf_mail_subiect = "Temat wiadomosci";

$msg = "<html><body>";

$msg .= "<div style=\"font-family:tahoma;font-size:12px;\">Polecam program: $program</div>";

$msg .= "</body></html>";

}}

?>

...

<?php endwhile; ?>

<?php else : ?>

...

 InternetSpeedTest.pl - speed test ookla, orange, upc, t-mobile, vectra | directX.pl - directx 9, 10, 11, 12 | kodex.pl

Odnośnik do komentarza
Udostępnij na innych stronach

No i ?

Coś Ci nie działa, masz z czymś problem ?

Z tego co widzę to próbujesz wywołać funkcję PHP w onclick.

Nie znam Javascript, ale myślę że AJAX powinien w twoim przypadku rozwiązać problem.

"AJAX send email" w google.

Pierwsza strona która naprowadzi Cię na rozwiązanie:

https://lastwebdesigner.com/featured/how-to-send-a-mail-with-php-ajax-and-jquery-in-facebook-style.html

Fragmenty kodu wstawiaj w znaczkach [ code ]

a9177b36246d7ce96fa698c9971dd36b.png

Sprzęt akwarystyczny kupuj w moim - sklep akwarystyczny.

adwokat częstochowa - Radca prawny Grzegorz Ledwoń. Pomoc w sprawie odszkodowania.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale w czym problem ?

Akcja formularza <form action=""> musi być ustawiona na adres pliku który żądanie ma przetworzyć i formularz powinien być wysłany metodą POST <form action="skrypt_odbiorca.php" method="post"> lub wysłanie obsłużyć w technologi AJAX.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Też sugerowałbym AJAXa - tu jest artykuł w temacie z działającym przykładem - jQuery AJAX.

Co do samego skryptu, który napisałeś:

1. Nie powinno być znacznika onclick w tagu form - wtedy cokolwiek klikniesz w formularzu, np. będziesz chciał uzupełnić pole, to wywoła się funkcja JS z tego atrybutu. Wystarczy zostawić sam przycisk do wysyłania formularza, ewentualnie do niego podpiąć tą akcję np. w przypadku AJAXa

2. Kod PHP funkcji slij() tak naprawdę nic nie robi - składa tylko wiadomość do zmiennej $msg. Nie widzę tam, żadnej funkcji, która by to wysłała. W najprostszym przypadku można wykorzystać funkcję mail() - jednak sugerowałbym skorzystanie z jakiejś gotowej biblioteki i wysyłkę przez SMTP.

3. Funkcja slij() sama się nie wywoła, jest tam definicja, a potrzeba jeszcze gdzieś dodać jej wywołanie - chyba, że masz to rozwiązane jakoś inaczej w swoim framework'u.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności