Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak v PHP vytvořit pole z tabulky

Zdravím,
mám v html formulář který obsahuje tabulku která má na řádku v inputech ID, URL a Název, navíc tabulka obsahuje několik desítek řádků. Poradí někdo, jak ze všech inputů a ze všech řádků vytvořit pole? Děkuji za info.

Z tohoto

<table>
  <tr>
    <td><input type="text" name="id" value="1"></td>
    <td><input type="text" name="url" value="aaa"></td>
    <td><input type="text" name="name" value="AAA"></td>
  </tr>
  <tr>
    <td><input type="text" name="id" value="2"></td>
    <td><input type="text" name="url" value="bbb"></td>
    <td><input type="text" name="name" value="BBB"></td>
  </tr>
  <tr>
    <td><input type="text" name="id" value="3"></td>
    <td><input type="text" name="url" value="ccc"></td>
    <td><input type="text" name="name" value="CCC"></td>
  </tr>
  <tr>
    <td><input type="text" name="id" value="4"></td>
    <td><input type="text" name="url" value="ddd"></td>
    <td><input type="text" name="name" value="DDD"></td>
  </tr>
</table>

chci vytvořit takové pole

$array = [1 => 'aaa','AAA',
          2 => 'bbb','BBB',
          3 => 'ccc','CCC'];
Předmět Autor Datum
Tož jestli můžu, tak napíšu takový laický tip. Pokud to budeš odesílat jako klasický formulář tak ta… nový
kacikac 15.05.2018 23:18
kacikac
Nejdřív si formulář přepiš takhle: <table> <tr> <td><input type="text" name="id[]" value="1"></td>… nový
hynajs 15.05.2018 23:23
hynajs
Nejsem tazatel, ale díky za tip, todle to jsem nevěděl, bude se hodit :-) Dal jsem ti +1 Jen doplním… poslední
kacikac 15.05.2018 23:46
kacikac

Tož jestli můžu, tak napíšu takový laický tip.
Pokud to budeš odesílat jako klasický formulář tak tam ty hodnoty všechny mít nebudeš, budeš tam mít jen ty z posledního tr. Pokud to musí být tak jak to je, tak to by šlo možná tak ajaxem, kdy bys poslal ajaxem celé to table a php by si to naparsoval. Nebo to nějak naparsovat v javascriptu a poslat to přes ajax.
Pokud to table můžeš měnit, tak to id vyhoď a nech tam jen url1, name1, url2, name2... pak se ti odešle všechno a jestli to je číslovaný popořádku, tak v php jen nějakým cyklem čeknout jestli existuje url1 (url2...), pokud ano tak přidat do array url1 a name1 jako 1, url a name (url2 a name2, ...), pokud ne, tak pokračovat ve sriptu.

Nejdřív si formulář přepiš takhle:

<table>
  <tr>
    <td><input type="text" name="id[]" value="1"></td>
    <td><input type="text" name="url[]" value="aaa"></td>
    <td><input type="text" name="name[]" value="AAA"></td>
  </tr>
  <tr>
    <td><input type="text" name="id[]" value="2"></td>
    <td><input type="text" name="url[]" value="bbb"></td>
    <td><input type="text" name="name[]" value="BBB"></td>
  </tr>
  <tr>
    <td><input type="text" name="id[]" value="3"></td>
    <td><input type="text" name="url[]" value="ccc"></td>
    <td><input type="text" name="name[]" value="CCC"></td>
  </tr>
  <tr>
    <td><input type="text" name="id[]" value="4"></td>
    <td><input type="text" name="url[]" value="ddd"></td>
    <td><input type="text" name="name[]" value="DDD"></td>
  </tr>
</table>

Pak budeš mít všechny hodnoty v poli $_GET nebo $_POST.

Nejsem tazatel, ale díky za tip, todle to jsem nevěděl, bude se hodit :-) Dal jsem ti +1
Jen doplním, že to jde i takto:

<!DOCTYPE html>
<form action="array.php">
<table>
  <tr>
    <td><input type="text" name="array[1][url]" value="aaa"></td>
    <td><input type="text" name="array[1][name]" value="AAA"></td>
  </tr>
  <tr>
    <td><input type="text" name="array[2][url]" value="bbb"></td>
    <td><input type="text" name="array[2][name]" value="BBB"></td>
  </tr>
  <tr>
    <td><input type="text" name="array[3][url]" value="ccc"></td>
    <td><input type="text" name="array[3][name]" value="CCC"></td>
  </tr>
  <tr>
    <td><input type="text" name="array[4][url]" value="ddd"></td>
    <td><input type="text" name="array[4][name]" value="DDD"></td>
  </tr>
</table>
<input type="submit" value="Submit">
</form>

je
print_r ($_GET["array"]);
echo $_GET["array"]["1"]["url"];
echo $_GET["array"]["1"]["name"];
výstup:
Array ( [1] => Array ( [url] => aaa [name] => AAA ) [2] => Array ( [url] => bbb [name] => BBB ) [3] => Array ( [url] => ccc [name] => CCC ) [4] => Array ( [url] => ddd [name] => DDD ) )
aaa
AAA

Zpět do poradny Odpovědět na původní otázku Nahoru