Chcę przekazać zmienne JavaScript do PHP za pomocą ukrytych danych wejściowych w formularzu.
Ale nie mogę zrozumieć wartości $_POST['hidden1']
w $salarieid
. Czy jest coś nie tak?
Oto kod:
<script type="text/javascript">
// View what the user has chosen
function func_load3(name) {
var oForm = document.forms["myform"];
var oSelectBox = oForm.select3;
var iChoice = oSelectBox.selectedIndex;
//alert("You have chosen: " + oSelectBox.options[iChoice].text);
//document.write(oSelectBox.options[iChoice].text);
var sa = oSelectBox.options[iChoice].text;
document.getElementById("hidden1").value = sa;
}
</script>
<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">
<input type="hidden" name="hidden1" id="hidden1" />
</form>
<?php
$salarieid = $_POST['hidden1'];
$query = "select * from salarie where salarieid = ".$salarieid;
echo $query;
$result = mysql_query($query);
?>
<table>
Code for displaying the query result.
</table>
php
javascript
variables
SUN Jiangong
źródło
źródło
Odpowiedzi:
Nie możesz przekazać wartości zmiennych z kodu JavaScript bieżącej strony do kodu PHP bieżącej strony ... Kod PHP działa po stronie serwera i nie wie nic o tym, co się dzieje po stronie klienta.
Musisz przekazać zmienne do kodu PHP z formularza HTML za pomocą innego mechanizmu, takiego jak przesłanie formularza za pomocą metody GET lub POST.
źródło
mysql_
funkcji; nie byłoby celem udzielenia odpowiedzi na to pytanie całkowitym przepisaniem.Po prostu zapisz to w pliku cookie:
A potem przeczytaj go w PHP:
To nie jest ładne rozwiązanie, ale działa.
źródło
Istnieje kilka sposobów przekazywania zmiennych z JavaScript do PHP (oczywiście nie do bieżącej strony).
Mógłbyś:
Jestem pewien, że można by to zrobić, aby wyglądać bardziej fantazyjnie i przeglądać wszystkie zmienne i inne rzeczy - ale utrzymałem to na podstawowym poziomie, aby ułatwić zrozumienie dla nowicjuszy.
źródło
Oto działający przykład: pobierz wartość zmiennej javascript na tej samej stronie w php.
źródło
echo "<script>document.writeln(p1);</script>";
używa zmiennej javascriptp1
w javascript , a nie php.document.writeln
to funkcja javascript , którą wykonujesz w przeglądarce, podczas gdy przeglądarka buduje stronę HTML.PHP działa na serwerze przed wysłaniem strony do użytkownika, JavaScript jest uruchamiany na komputerze użytkownika po jej odebraniu, więc skrypt PHP został już wykonany.
Jeśli chcesz przekazać wartość JavaScript do skryptu PHP, musisz wykonać XMLHttpRequest, aby wysłać dane z powrotem na serwer.
Oto poprzednie pytanie, na które możesz odpowiedzieć, aby uzyskać więcej informacji: Samouczek Ajax
Teraz, jeśli potrzebujesz tylko przekazać wartość formularza do serwera, możesz po prostu zrobić zwykły post formularza, który robi to samo, ale cała strona musi zostać odświeżona.
Kliknięcie Prześlij spowoduje przesłanie strony i wydrukowanie przesłanych danych.
źródło
Próbowałem to rozgryźć sam, a potem zdałem sobie sprawę, że problem polega na tym, że jest to swego rodzaju wsteczny sposób patrzenia na sytuację. Zamiast próbować przekazywać rzeczy z JavaScript do php, w większości przypadków najlepiej jest przejść na odwrót. Kod PHP jest wykonywany na serwerze i tworzy kod html (i być może również skrypt java). Następnie przeglądarka ładuje stronę i wykonuje skrypt html i java.
Wydaje się, że rozsądnym sposobem podejścia do takich sytuacji jest użycie PHP do stworzenia JavaScript i żądanego kodu HTML, a następnie użycie JavaScript na stronie, aby zrobić to, czego PHP nie może zrobić. Wygląda na to, że dałoby to korzyści zarówno z PHP, jak i JavaScript w dość prosty i bezpośredni sposób.
Jedną rzeczą, którą zrobiłem, która sprawia wrażenie przekazywania rzeczy do PHP z Twojej strony w locie, jest użycie tagu graficznego HTML do wywołania kodu PHP. Coś takiego:
Kod PHP w pic.php faktycznie utworzyłby kod html przed załadowaniem strony internetowej, ale ten kod html jest w zasadzie wywoływany w locie. Kod php tutaj może zostać użyty do stworzenia obrazu na twojej stronie, ale oprócz tego może zawierać dowolne polecenia, które lubisz. Może to zmienia zawartość niektórych plików na twoim serwerze itp. Plusem tego jest to, że kod php może być wykonany z html i zakładam JavaScript, ale wadą jest to, że jedyne wyjście, które może umieścić na twojej stronie, to wizerunek. Masz również możliwość przekazywania zmiennych do kodu php poprzez parametry w adresie URL. W wielu przypadkach liczniki stron będą korzystać z tej techniki.
źródło
Możemy łatwo przekazywać wartości nawet na tych samych / różnych stronach za pomocą plików cookie pokazanych w kodzie w następujący sposób (w moim przypadku używam go z integracją z Facebookiem) -
I uzyskałem do niego dostęp (w dowolnym pliku) za pomocą -
źródło
Oto jak to zrobiłem (potrzebowałem wstawić lokalną strefę czasową do PHP:
źródło
Czy Twoja funkcja, która ustawia wartość ukrytego formularza, jest wywoływana? Nie ma tego w tym przykładzie. Nie powinieneś mieć problemu ze zmodyfikowaniem ukrytej wartości przed wysłaniem formularza z powrotem na serwer.
źródło
W Twoim kodzie jest kilka błędów.
Możliwe jest ustawienie zmiennej JavaScript w ukrytej zmiennej w formularzu, następnie przesłanie jej i odczytanie wartości z powrotem w PHP. Oto prosty przykład, który to pokazuje:
źródło
kiedy Twoja strona ładuje kod PHP po raz pierwszy, uruchom i ustaw kompletny układ strony internetowej. po układzie strony ustawia ładowanie JavaScript. teraz JavaScript bezpośrednio współdziała z DOM i może manipulować układem, ale PHP nie może odświeżyć strony. Jedynym sposobem jest odświeżenie strony i przekazanie parametrów w adresie URL strony, aby można było pobrać dane przez PHP. Dlatego używamy AJAX do interakcji JavaScript z PHP bez przeładowywania strony. AJAX może być również używany jako API. jeszcze jedno, jeśli zadeklarowałeś już zmienną w PHP. przed załadowaniem strony możesz go użyć z przykładem JavaScript.
powyższy kod jest poprawny i będzie działał. ale poniższy kod jest całkowicie błędny i nigdy nie zadziała.
Przekaż wartość z JavaScript do PHP przez AJAX
jest to najbezpieczniejszy sposób na zrobienie tego. ponieważ zawartość HTML można edytować za pomocą narzędzi programistycznych, a użytkownik może manipulować danymi. więc lepiej jest używać AJAX, jeśli chcesz mieć bezpieczeństwo nad tą zmienną. Jeśli jesteś nowicjuszem w AJAX, naucz się AJAX, to jest bardzo proste.
prosty przykład AJAX
w przeciwnym razie możesz utworzyć ukryte wejście HTML wewnątrz formularza. lubić
następnie poprzez jQuery lub javaScript przekaż wartość do ukrytego pola. lubić
Teraz po przesłaniu formularza możesz uzyskać wartość w PHP.
źródło
Być może możesz użyć metody serialize () jquery, aby wszystko było za jednym zamachem.
// w ten sposób możesz uzyskać ukrytą wartość również po stronie serwera.
źródło
To oczywiście rozwiązanie nie zostało wcześniej wspomniane. Możesz także użyć plików cookie, aby przekazać dane z przeglądarki z powrotem na serwer.
Po prostu ustaw plik cookie z danymi, które chcesz przekazać do PHP za pomocą javascript w przeglądarce.
Następnie po prostu przeczytaj ten plik cookie po stronie PHP.
źródło
Nie możemy przekazać wartości zmiennych JavaScript bezpośrednio do kodu PHP ... Kod PHP działa po stronie serwera i nie wie nic o tym, co się dzieje po stronie klienta.
Dlatego lepiej jest użyć AJAX do przeanalizowania wartości JavaScript w kodzie php.
Lub alternatywnie możemy to zrobić za pomocą COOKIES w naszym kodzie.
Dzięki i pozdrawiam.
źródło