Autor Zpráva
David_
Profil *
Ahoj,
mám tabulku:
Publikovat Název Hodnota Pořadí Povolit
<checkbox> <text input> <text input> <text input> <checkbox>

<td><input type="checkbox" name="publikovat[]" /></td>
<td><input type="text" name="nazev[]" size="50" /></td>
<td><input type="text" name="hodnota[]" size="50" /></td>
<td><input type="text" name="poradi[]" size="3" /></td>
<td><input type="checkbox" name="povolit[]" /></td>

a potřebuju je zpracovat po řádcích v php, napsal jsem si teda na to nějaký script:
$pocet = 0;
foreach($d["nazev"] as $nazev) {
$hodnota = $d["hodnota"][$pocet];
$poradi = $d["poradi"][$pocet];
$publikovat = $d["publikovat"][$pocet];
$povolit_aktualizace = $d["povolit_aktualizace"][$pocet];

$parametry[] = array (
'nazev' => $parametr,
'parametr_publish' => $zobrazit,
'hodnota' => $hodnota,
'product_id' => $product_id,
'poradi' => $poradi,
'povolit_aktualizace' => $povolit_aktualizace
);
}

jenze problem je, ze kdyz dam pred tim cyklem foreach
print_r($d["publikovat"]);
tak mi to vypise:
Array ( [0] => on )

i kdyz mnou vyplnena tabulka vypada takhle:
<neoznacen> nazev1 hodnota1 1 <checked>
<checked> nazev2 hodnota2 1 <checked>
<neoznacen> nazev3 hodnota3 1 <checked>

proste mi to da On jenom u tech, kde je checkbox oznacen, ale neda to Off tam, kde neni checkbox oznacen... Co s tím?
trinitrochleba
Profil *
"off" se neposila / neexistuje. Pokud neni nejakej checkbox oznacen, tak pak neposle NIC, zatimco kdyz je oznacen, posle to zminene "on"
David_
Profil *
no prave, tak jak se da udelat to zpracovavani tech udaju po radcich?
Alphard
Profil
zdá se mi, ž do toho zbytečně motáte i pole, dal bych tam normální name
a potom
$poradi = isset ($_POST['poradi']) ? $_POST['poradi'] : FALSE;
David_
Profil *
poradi mi funguje, nefungovaly mi checkboxy - publikovat a povolit aktualizace, ale uz to mam, diky za snahu:

checkbox.cz
// stranka s checkboxy:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">;
<title></title>
</head>
<body>
<form action="vysledek.php" method="post">
<table>
<tr>
<td>publikovat</td>
<td>nazev</td>
<td>hodnota</td>
<td>poradi</td>
</tr>
<tr>
<td><input type="checkbox" name="publikovat[]" value="0" /></td>
<td><input type="text" name="nazev[]" size="50" /></td>
<td><input type="text" name="hodnota[]" size="50" /></td>
<td><input type="text" name="poradi[]" size="3" /></td>
<td><input type="checkbox" name="povolit_aktualizace[]" value="0" /></td>
</tr>
<tr>
<td><input type="checkbox" name="publikovat[]" value="1" /></td>
<td><input type="text" name="nazev[]" size="50" /></td>
<td><input type="text" name="hodnota[]" size="50" /></td>
<td><input type="text" name="poradi[]" size="3" /></td>
<td><input type="checkbox" name="povolit_aktualizace[]" value="1" /></td>
</tr>
<tr>
<td><input type="checkbox" name="publikovat[]" value="2" /></td>
<td><input type="text" name="nazev[]" size="50" /></td>
<td><input type="text" name="hodnota[]" size="50" /></td>
<td><input type="text" name="poradi[]" size="3" /></td>
<td><input type="checkbox" name="povolit_aktualizace[]" value="2" /></td>
</tr>
</table>
<input type="submit" value="Odeslat" />
</form>
</body>
</html>


vysledek.php
// stranka s vysledkem:
<?php

ini_set('display_error','On');
ini_set("max_execution_time", "3000000");

$product_id = 983;

$d = $_POST;
$parametry = array();
if(is_array($d["nazev"])) {

$poradiArray = $d["poradi"];
$nazevArray = $d["nazev"];
$hodnotaArray = $d["hodnota"];
$publikovatArray = $d["publikovat"];
$povolit_aktualizaceArray = $d["povolit_aktualizace"];
$publikovane = array_values($d["publikovat"]);
$aktualizace = array_values($d["povolit_aktualizace"]);


$pocet = 0;
foreach($d["nazev"] as $parametr) {
$hodnota = $d["hodnota"][$pocet];
$poradi = $d["poradi"][$pocet];
if(in_array($pocet, $publikovane)) {

$zobrazit = 1;
}
else {
$zobrazit = 0;
}

if(in_array($pocet, $aktualizace)) {
$povolit_aktualizace = 1;
}
else {
$povolit_aktualizace = 0;
}

if((empty($hodnota)) AND (empty($parametr))) {
continue;
}
$parametry[] = array (
'nazev' => $parametr,
'parametr_publish' => $zobrazit,
'hodnota' => $hodnota,
'product_id' => $product_id,
'poradi' => $poradi,
'povolit_aktualizace' => $povolit_aktualizace
);
$pocet++;
}
// print_r($parametry);
echo "<table>\n";
echo "<tr><td>publikovat</td><td>nazev</td><td>hodnota</td><td>poradi</td>< td>povolit_aktualizace</td><td>product_id</td></tr>\n";
foreach($parametry as $parametr) {
echo "<tr><td>".$parametr["parametr_publish"]."</td><td>".$parametr["nazev" ]."</td><td>".$parametr["hodnota"]."</td><td>".$parametr["poradi"]."</ td><td>".$parametr["povolit_aktualizace"]."</td><td>".$parametr["produ ct_id"]."</td></tr>\n";

}
echo "</table>\n";
}
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0