Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][JavaScript][PHP]Co zamiast form action?
Forum PHP.pl > Forum > Przedszkole
frankiejojo
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ź
Tomplus
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.
frankiejojo
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




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

przed pętlę
a zamknięcie formularza za pętle
frankiejojo
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ź
viking
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.
frankiejojo
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


viking
  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.
frankiejojo

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"

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.