Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][JavaScript][PHP]Co zamiast form action?, Wiem co niedziała i szukam to co zadziała
frankiejojo
post 7.11.2015, 13:02:15
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


Potrzebuję rozwiązanie prostego teoretycznie zagadnienia:

W panelu użytkownika pojawia się lista:

zwykłe zapytanie select, które generuje liste
for ($i=0; $i <$ile_znalezionych; $i++)
{
echo '<div id = "list">';
<form action = .....>

echo '</div>';


}

W ramach tego form action jest przycisk który przekierowuje do pliku zmien.php

Tylko mnie zależy na tym by nie było podstron.

Czyli mam taką funkcję


function zmien(){
$.get( "zmien.php", {nroferty:$("#nroferty").val()} ).done(function( data ) {
$("#wyniki").html(data);
});

i tu pojawia się problem.

1 Form action z formułą java script nie chodzi/
2. Jak nie ma form action to "wychwytuje" tylko pierwsze id na stronie a dalszych już nie widzi (oczywiście wiem, że id powinno być tylko jedno).

Tak więc wiem co nie chodzi - i szukam tego co chodzi.
Pytanie:
Jak zmodyfikować funkcję by wychwytywała różne id?
albo
Co ma być zamiast form action by to chodziło>

Dzięki za podpowiedź
Go to the top of the page
+Quote Post
Tomplus
post 7.11.2015, 17:03:01
Post #2





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


1. nie działa (popraw tytuł)
2. wrzucaj kod w tagi CODE lub PHP

3. coś takiego możesz zrobić nawet w jednym pliku PHP np. formularz.php, bez używania dodatkowych plików. Wystarczy zrobić sobie warunki które jeden służy do obsługi strony WWW, a drugi jeżeli otrzymuje zapytanie z formularza (.get lub .post) wyświetla dane wynikowe.

4. Nie rozumiem dlaczego robisz multiplikacje <form action = .....> czyli tyle ile jest rekordów w $lista tyle otwierasz formularzy. Może dlatego ci nie działa funkcja JS.
Go to the top of the page
+Quote Post
frankiejojo
post 8.11.2015, 15:19:48
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


Oczywiście funkcja znajduje się w head pomiędzy znacznikami java
<head>
<script type="text/javascript">
function zmien(){
$.get( "zmien.php", {nroferty:$("#nroferty").val()} ).done(function( data ) {
$("#wyniki").html(data);
});
</script>
<head>
<body>
<?php
//laczenie z baza
requier laczene.php;
//wyszukaj
$zapytanie = select nr oferty from baza where zuytkownik = $uzytkownik;
// z tego zapytania generuję listę wszystkich ofert
$wynik = mysqli_query($mysql, $zapytanie);
$ile = mysqli_num_rows($wynik);
// listuje całość
for ($i=0; $i <$ile; $i++)
{
echo '<form action = zmien.php method = "post">';
echo '<input type ="hidden" name = "nroferty" id ="nroferty" value = "';
echo stripslashes($wiersz['nroferty']);
echo '"';
echo '<input type="submit" value="Szukaj" />';
echo '</form>';
}
?>
</body>

no i właśnie nie wiem czym zastąpić to form action by wyrzucało funkcję a nie kierowało do podstrony




Go to the top of the page
+Quote Post
artur_dziocha
post 9.11.2015, 07:47:19
Post #4





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


wyrzuć
  1. echo '<form action = zmien.php method = "post">';

przed pętlę
a zamknięcie formularza za pętle
Go to the top of the page
+Quote Post
frankiejojo
post 14.11.2015, 09:36:06
Post #5





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


Mnie chodzi o to by z pętli wywoływana była formuła zmien() pobierająca argument nroferty generowany przez pętle echo stripslashes($wiersz['nroferty']); - w zależności od tego "którą ofertę człowiek przyciśnie to z tym nr oferty.
<form action wywołuje mi cały plik (przeładowuje stronę) a mnie chodzi tylko o to by pomiędzy div id = "wyniki" pojawiła się konkretna oferta.

mam krótkie pytanie

Mam formularz, który kończy sie pytaniem Akceptujesz regulamin?
Oczywiście tu są dwie opcje tak lub nie

echo '<button class="dok" check="T">Akceptuję</button>';

echo '<button class="dok" check="N">Nie akceptuję</button>';

i samo to chodzi.

Jednak jeżeli jest to częścią formularza:
echo '<book>';
echo '<button class="dok" >';
echo '<input type="text" name = "zmienna1">';
echo '<input type="text" name ="zmienna2">';
echo 'dodaj</button>';
echo '</book>';

Już nie

Jak sprawić by pobierał wszystkie dane

funkcja jest taka:

$('.dok').on('click', function () {
checkid=$(this).attr("check");
zmienna1id=$(this).attr("zmienna1");
zmienna2id=$(this).attr("zmienna2");
$.ajax({
type : 'POST',
url : 'poprawianie.php',
data: 'checker='+checkid+'&zmiennapierwsza='+zmienna1id+'&zmiennadruga='+zmienna2id,
success : function(data) {
$('#wyniki').html(data);
}
});
});

Dzięki za podpowiedź
Go to the top of the page
+Quote Post
viking
post 14.11.2015, 10:02:47
Post #6





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Co ty tworzysz? Button to button, input to input. Dlaczego wewnatrz button są dwa inputy? Swoją drogą <input type=radio/> jest od takich rzeczy jak wybory.


--------------------
Go to the top of the page
+Quote Post
frankiejojo
post 14.11.2015, 10:33:00
Post #7





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


echo '<button class="dok" check="N">Nie akceptuję</button>'; - samo chodzi.
input type = submit - nie przesyła mi zmiennych

Oczywiści input type radio jest do opcji wyboru.

usiłuję przesłać przesłać do funkcji parę zmiennych - część selectem, część inputem.
form action jest dobre jak chce strone przeładować - ale tego chcę uniknąć.
Więc jak do kn zrobić ten cholerny formularz - pomocy


Go to the top of the page
+Quote Post
viking
post 14.11.2015, 11:10:24
Post #8





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


  1. $('.dok').on('click', function () {
  2. checkid=$(this).attr("check");
  3. zmienna1id=$(this).attr("zmienna1");


Zrób sobie console.log(this) bo w tym kontekście dotyczy .dok. Więc to nie button ma atrybut tylko inputy pod nim.


--------------------
Go to the top of the page
+Quote Post
frankiejojo
post 14.11.2015, 16:42:14
Post #9





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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



Zrób sobie console.log(this) bo w tym kontekście dotyczy .dok. Więc to nie button ma atrybut tylko inputy pod nim.

Możesz to trochę jaśniej wyjaśnić.

Wg mnie problem tkwi bardziej po stronie html - jak przesłać dane do tej funkcji. (Jak z buttona odbiera to z inputa też powinna)
echo '<input type="text" name="zmienna1">';
echo '<input type="text" name="zmienna2">';
echo '<input type="submit" value="dalej">';

Gdzie jest byk"

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 21:13