Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Metoda post?
Forum PHP.pl > Forum > Przedszkole
assasin
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..
luck
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.
tomm
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
assasin
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.
tomm
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
assasin
Ehm, ale formularz jest dobry ja chce wiedzieć jak skrypt php pod to ma wyglądać...
tomm
wyświetl sobie za pomocą
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';

co wysyłasz z formularza do pliku php
bemol
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.  
assasin
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

tomm
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ę
assasin
withstupidsmiley.gif blinksmiley.gif sciana.gif Jakiś przykład?
tomm
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)
assasin
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?
luck
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'].
assasin
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"]."', ";
nospor
if (empty(...))
i teraz pomysl trochę sam.
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.