frankiejojo
7.11.2015, 13:02:15
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
7.11.2015, 17:03:01
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
8.11.2015, 15:19:48
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
9.11.2015, 07:47:19
wyrzuć
echo '<form action = zmien.php method = "post">';
przed pętlę
a zamknięcie formularza za pętle
frankiejojo
14.11.2015, 09:36:06
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
14.11.2015, 10:02:47
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
14.11.2015, 10:33:00
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
14.11.2015, 11:10:24
$('.dok').on('click', function () {
checkid=$(this).attr("check");
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
14.11.2015, 16:42:14
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.