Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Metoda post?
assasin
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


Witam, mam pytanie jak zrobić coś takiego w php:

Skrypt ma generować zapytanie sql na podstawie zgromadzonych danych z komórek. Z komórek skrypt pobiera dane metodą POST.
Ja mam tak
  1. Kod:
  2. if (!isset($_POST["entry"])) {
  3. $sql = "";
  4. } else if (isset($_POST["entry"])) {
  5. $sql = "<textarea name=sql wrap=off cols=100 rows=1>
  6. INSERT INTO `moob` VALUES ("
  7. ."'".$_POST["entry"]."', "
  8. ."</textarea>";
  9. }


no i html

<p>entry<br><input type="text" name="typ" value="" size="5"/></p>

A jak zrobić coś takiego żeby do komórki nie wpisywało się wartości tylko żeby formularz działał na takiej zasadzie:

Vendor: Tak Nie - po naciśnięciu tak przypisuje wartość np 1
Vendor2: Tak Nie - po naciśnięciu tak przypisuje wartość np 1

Albo po naciśnięciu Tak i Tak generuje wartość np: 3
no i po naciśnięciu wyślij wyświetla się kod sql..

Chyba mnie nikt nie rozumie a więc jeszcze raz:

Mam formularz i są dane komórki

Vendor: Tak Nie - (value 1)
Vendor2: Tak Nie - (value 2)

No i jeśli Wciśniemy Tak i Tak to dodaje te 2 liczby 1 + 2 = 3 i dopisuje do zapytania 3. Jeśli wciśniemy Tylko tak w Vendor to dopisuje 1.

I skrypt ma pobierać dane z formularza i wyświetlać jako zapytanie sql..

Kod:
$sql = "<textarea name=sql wrap=off cols=100 rows=1>
INSERT INTO `moob` VALUES ("
."'".$_POST["entry"]."', "
."</textarea>";


Ten skrypt działa wyświetla zapytanie sql, ale on działa na takiej zasadzie:

Jest formularz wpisujemy liczbę no i pobiera tą liczbę i wyświetla w zapytaniu..
Go to the top of the page
+Quote Post
luck
post
Post #2





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


Nie czaję za bardzo o co chodzi, ale może coś takiego się przyda:
  1. Vendor 1: <input type="checkbox" name="vendor[1]" value="1" /><br />
  2. Vendor 2: <input type="checkbox" name="vendor[2]" value="1" />
Traktujesz to tak: jeśli pole zaznaczone to "TAK", jeśli nie to "NIE".
Po przesłaniu formularza w PHP odczytujesz sobie tablicę $_POST['vendor'] i sprawdzasz które z pól były zaznaczone. Na tej podstawie budujesz zapytanie.


--------------------
Go to the top of the page
+Quote Post
tomm
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


tak jak napisał luck chyba najlepiej na checkboxach, jeśli zależe ci na przyciskach to zrób sobie inpyta typu hidden i przycicakmi za pomocą js przypisuj im wartości
Go to the top of the page
+Quote Post
assasin
post
Post #4





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


Hm, mam formularz:

  1. <td align="right">Vendor <img src="" onmouseover="stm(Text[231],Style[13])" onmouseout="htm()" border="0"></td>
  2. <td><input class="input-clear" name="npcvendor" value="1" type="radio">Yes</td>
  3. <td><input class="input-clear" name="npcvendor" value="0" checked="checked" type="radio">No</td>
  4.  
  5. <td align="right">Vendor2 <img src="" onmouseover="stm(Text[231],Style[13])" onmouseout="htm()" border="0"></td>
  6. <td><input class="input-clear" name="npcvendor" value="2" type="radio">Yes</td>
  7. <td><input class="input-clear" name="npcvendor" value="0" checked="checked" type="radio">No</td>


Skrypt php ma pobierać dane z value, JEŻELI NACISNĘ w Vendor Tak to przypisuje 1 Jeżeli W Vendor 2 Tak to przypisuje 2 a jeżeli tu i tu Tak to dodaje te 2 wartości...
Później wyślij i wyświetla się zapytanie..
Oczywiście powyższy przykład to tylko jedna komórka całego zapytania...

Pewnie nadal mnie nikt nie rozumie o.O.

Ten post edytował assasin 18.04.2010, 13:19:22
Go to the top of the page
+Quote Post
tomm
post
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


dla każdej z grup radiobuttonów musisz dać inną nazwę, np
  1. <td><input class="input-clear" name="npcvendor1" value="1" type="radio">Yes</td>
  2. <td><input class="input-clear" name="npcvendor1" value="0" checked="checked" type="radio">No</td>
  3.  
  4. <td><input class="input-clear" name="npcvendor2" value="2" type="radio">Yes</td>
  5. <td><input class="input-clear" name="npcvendor2" value="0" checked="checked" type="radio">No</td>
  6.  



jeśli wszędzia masz taką samą to będziesz mógł z tych czterech zaznaczyć tylko jeden
Go to the top of the page
+Quote Post
assasin
post
Post #6





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


Ehm, ale formularz jest dobry ja chce wiedzieć jak skrypt php pod to ma wyglądać...
Go to the top of the page
+Quote Post
tomm
post
Post #7





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


wyświetl sobie za pomocą
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';

co wysyłasz z formularza do pliku php
Go to the top of the page
+Quote Post
bemol
post
Post #8





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


nie jest dobrze, musisz zrobić tak jak napisał tomm
a po stronie php dodać do siebie te wartości.

  1.  
  2. $suma = (int)$_POST['npcvendor2'] + (int)$_POST['npcvendor1'];
  3.  
  4. if (!isset($_POST)) {
  5. $sql = "";
  6. } else if (isset($_POST)) {
  7. $sql = "<textarea name=sql wrap=off cols=100 rows=1>
  8. INSERT INTO `moob` VALUES ("
  9. ."'".$suma."', "
  10. ."</textarea>";
  11. }
  12.  
  13.  


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
assasin
post
Post #9





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


Ehh tylko tych pól nie jest 2 tylko:

  1. Gossip Yes No
  2. Vendor Yes No
  3. Armorer Yes No
  4. Innkeeper Yes No
  5. Banker Yes No
  6. Auctioneer Yes No
  7. Stable Yes No
  8. Guild Bank Yes No

Go to the top of the page
+Quote Post
tomm
post
Post #10





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


no to wyświetl je za pomocą pętli i w nazwie dla każdej grupy daj nazwę + nr iteracji pętli aby każda grupa miała unikatową nazwę
Go to the top of the page
+Quote Post
assasin
post
Post #11





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


withstupidsmiley.gif blinksmiley.gif sciana.gif Jakiś przykład?
Go to the top of the page
+Quote Post
tomm
post
Post #12





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


załóżmy że masz 8 grup wyboru, tak jak przedstawiłeś powyżej (czyli 16 radiobuttonów), krecisz pętlą 8 razy, przy każdej itaracji towrzysz 2 radiobuttony z nazwą np: echo '<input type="radiobutton" name="vendor'.nr_itarecji.' " value="0" /> <input type="radiobutton" name="vendor'.nr_itarecji.' " value="1" />';

lub jeśli te nazwy są stale czyli gossip, vendor itd to możesz stworzyś tablicę $names = array('gossip', 'vendor'... i w każdej iteracji jako wartość atrybutu name wpisywać $names[nr_iteracji]

pozostaje jeszcze rozwiązać przypisywanie wartości dla value, nie pokazałeś czy zwiększa się ona o jeden dla każdej nastepnej grupy pól (jak mozna wnioskować z pokazanego fraagmentu)
Go to the top of the page
+Quote Post
assasin
post
Post #13





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


Hmm a jak to zrobić w php:
:smutny:Mam rozwijaną liste:

  1. <label>Rank&nbsp;
  2. <select name="rank">
  3.  
  4. <option value="0">Normal</option>
  5. <option value="1">Elite</option>
  6. <option value="2">Rare Elite</option>
  7. <option value="3">World Boss</option>
  8. <option value="4">Rare</option>
  9. </select>

Jeśli zaznacze normal wartość 0 zapisuje się do jakiejś zmiennej?

Ten post edytował assasin 26.04.2010, 19:11:06
Go to the top of the page
+Quote Post
luck
post
Post #14





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


Cytat(assasin @ 26.04.2010, 20:10:23 ) *
  1. <label>Rank&nbsp;
  2. <select name="rank">
  3.  
  4. <option value="0">Normal</option>
  5. <option value="1">Elite</option>
  6. </select>

Jeśli zaznacze normal wartość 0 zapisuje się do jakiejś zmiennej?

Dokładnie. Po wysłaniu formularza wybraną wartość będziesz miał w zmiennej $_POST['rank'].


--------------------
Go to the top of the page
+Quote Post
assasin
post
Post #15





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 13.11.2008

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


Hmm a jak zrobić żeby w przypadku nie zaznaczeniu żadnej opcji albo nie uzupełnieniu komórki w wartość automatycznie do zmiennej została przypisana jakaś wartość np: 0 albo 25 ?
  1. $rank = "'".$_POST["rank"]."', ";
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




if (empty(...))
i teraz pomysl trochę sam.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 21.08.2025 - 16:48