praegune kellaaeg 18.06.2025 01:11:39
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
redenergy
HV veteran

liitunud: 22.03.2004
|
27.06.2013 00:19:11
Tabelist mitme väärtuse muutmine. Kasutades checkboxi, SQL ja PHP |
|
|
Tere, pikemat aega jaman juba asjaga.
Nimelt, kui kasutaja valib checkboxid ja vajutab muuda nuppu, siis kuvatakse kõik andmed endiselt aga checkitud andmed kuvatakse input formis.
Probleem tekib juba error checkis, ainult viimasel veal tekitab errori ja eelnevad laseb minema. Milline oleks parim lahendus sellisele asjale?
Tegu testimise koodiga, põhimõte oleks tähtis. Ehk oskab keegi õigele teele viia.
Tänud
php:
|
<table id="layout" cellspacing="0"> <?php if(isset($_POST['editem'])){ foreach($_POST['value'] as $value){ echo 'Summa peab olema number'; $error = TRUE; $false[] = $value; } } if($error == FALSE){ } } $result = mysql_query("SELECT catID, cur AS value, description, valueID, UNIX_TIMESTAMP(timestamp) AS timestamp FROM test WHERE userID = '1' AND catID = '$catid' ORDER BY timestamp DESC LIMIT 0, 10 ") $description = $row['description']; $value = $row['value']; $valueid = $row['valueID']; $timestamp = $row['timestamp']; $time = date('d.m.Y', $timestamp); $checkbox = $_POST['checkbox']; ?> <form method="post" action="<?=$PHP_SELF; ?>"> <tr> <td align="left"><input class="edittime" type="text" name="time" value="<?=$time; ?>" /></td> <td><input class="editinput" type="text" name="description" value="<?=$description; ?>" /></td> <td align="left"><input class="edittime" type="text" name="value[]" value="<?=$value ?>" /></td> <td align="right"><input class="edittime" type="text" name="valueid[]" value="<?=$valueid; ?>" /></td> <td align="center"></td> </tr> <input type="submit" name="editem" value="" id="delete" /> </form> <?php } else{ ?> <form method="post" action=""> <tr> <td><?=$time; ?></td> <td><?=$description; ?></td> <td align="right"><?=$value ?></td> <td align="right"><?=$saldo ?></td> <td align="right"><input type="checkbox" name="checkbox[]" class="checkbox" value="<?=$valueid?>" id="checkbox_<?=$valueid;?>" /></td> </tr> <?php } } ?> </table>
|
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
27.06.2013 17:34:51
|
|
|
See kontroll osa toimib küll normaalselt jama peab sul mujal olema. Viimane form sul lõpetamata muidu.
php:
|
<table id="layout" cellspacing="0"> <?php if(isset($_POST['editem'])){ foreach($_POST['value'] as $value){ echo 'Summa peab olema number'; $error = TRUE; $false[] = $value; } } if($error == FALSE){ } } ?> <form method="post" action="?"> <tr> <td align="left"><input class="edittime" type="text" name="time" value="<?=$time; ?>" /></td> <td><input class="editinput" type="text" name="description" value="<?=$description; ?>" /></td> <td align="left"><input class="edittime" type="text" name="value[]" value="<?=$value ?>" /></td> <td align="right"><input class="edittime" type="text" name="valueid[]" value="<?=$valueid; ?>" /></td> <td align="center"></td> </tr> <tr> <td align="left"><input class="edittime" type="text" name="time" value="<?=$time; ?>" /></td> <td><input class="editinput" type="text" name="description" value="<?=$description; ?>" /></td> <td align="left"><input class="edittime" type="text" name="value[]" value="<?=$value ?>" /></td> <td align="right"><input class="edittime" type="text" name="valueid[]" value="<?=$valueid; ?>" /></td> <td align="center"></td> </tr> <tr> <td align="left"><input class="edittime" type="text" name="time" value="<?=$time; ?>" /></td> <td><input class="editinput" type="text" name="description" value="<?=$description; ?>" /></td> <td align="left"><input class="edittime" type="text" name="value[]" value="<?=$value ?>" /></td> <td align="right"><input class="edittime" type="text" name="valueid[]" value="<?=$valueid; ?>" /></td> <td align="center"></td> </tr> <table> <input type="submit" name="editem" value="" id="delete" /> </form>
|
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
30.06.2013 18:38:36
|
|
|
Tänud, tundub, et viga oligi formi ülesehituses
Aga nüüd olen jälle ummuksis.
Kui on tekkinud viga siis tekitan array($data), et kasutaja poolt viimane sisestus oleks samal kujul input fieldis kuvatud ($data[$valueid] $data on siis array mis sisaldab $valueid => $editvalue.
while loopis kasutan $valueid, mis peaks siis kuvama arrayst selle välja kohta tehtud vigase sisestuse. Aga ta ei tee seda, kuvab märgitud väljadel ainult viimase kasutajapoolt sisestatud väärtuse, teised valitud väljad on tühjad.
print_r andis sellise tulemuse, kui sisestasin 4 väärtust: aa, bb, cc, dd:
Array ( [2277] => aa ) Array ( [2275] => bb ) Array ( [2278] => cc ) Array ( [2258] => dd )
Olen proovinud üht-kui-teistpidi, igasugune abistav vihje on tänuväärt.
sql:
|
<form method="post" action="<?=$PHP_SELF; ?>"> <table id="layout" cellspacing="0"> <?php IF(isset($_POST['editem'])){ $editvalue = $_POST['value']; $editid = $_POST['valueid']; FOR($i=0;$i<count($editid);$i++){ IF(!is_numeric($editvalue[$i])){ echo 'Summa peab olema number'; $error = TRUE; $editem = $editid[$i]; $editcheck = $editid; $editvalueem = $editvalue; $data = array($editem => $editvalueem[$i]); } IF($error == FALSE){ echo 'OK!'; } print_r($data); } } $result = mysql_query("SELECT catID, cur AS value, description, valueID, UNIX_TIMESTAMP(timestamp) AS timestamp FROM test WHERE userID = 1 AND catID = '$catid' ORDER BY timestamp DESC LIMIT 0, 10 ") OR die(mysql_error()); while($row = mysql_fetch_array($result)){ $description = $row['description']; $value = $row['value']; $valueid = $row['valueID']; $catid = $row['catID']; $timestamp = $row['timestamp']; $time = date('d.m.Y', $timestamp); $checkbox = $_POST['checkbox']; IF(isset($editid) && isset($_POST['editem']) && in_array($valueid, $editcheck)){ ?> <tr> <td align="left"><input class="edittime" type="text" name="time" value="<?=$time; ?>" /></td> <td><input class="editinput" type="text" name="description" value="<?=$description; ?>" /></td> <td align="left"><input class="edittime" type="text" name="value[]" value="<?=$data[$valueid]; ?>" /></td> <td align="right"><input class="edittime" type="text" name="valueid[]" value="<?=$valueid; ?>" /></td> <td align="center"></td> </tr> <?php } elseif(isset($_POST['edit']) && isset($checkbox) && in_array($valueid, $checkbox)){ ?> <tr> <td align="left"><input class="edittime" type="text" name="time" value="<?=$time; ?>" /></td> <td><input class="editinput" type="text" name="description" value="<?=$description; ?>" /></td> <td align="left"><input class="edittime" type="text" name="value[]" value="<?=$value; ?>" /></td> <td align="right"><input class="edittime" type="text" name="valueid[]" value="<?=$valueid; ?>" /></td> <td align="center"></td> </tr> <?php } else{ ?> <tr> <td><?=$time; ?></td> <td><?=$description; ?></td> <td align="right"><?=money_format('%n', $value) ?></td> <td align="right"><?=money_format('%n', $saldo) ?></td> <td align="right"><input type="checkbox" name="checkbox[]" class="checkbox" value="<?=$valueid?>" id="checkbox_<?=$valueid;?>" /></td> </tr> <?php } } ?> </table> <input type="submit" name="editem" value="" id="delete" /> <input type="submit" name="edit" value="" id="edit" /> <input type="submit" name="sess" value="Sess" /> </form>
|
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
01.07.2013 23:28:53
|
|
|
Ehk on abiks
php:
|
<style> .fa input{background:#ff0000;} </style> <form method="post" action="?"> <table> <?php // numbri kontroll function number($nr){ } //selle asemel su andmebaasi while ja $i paned counteriga lugema for($i=1;$i<5;$i++){ <tr> <td>aeg</td> <td>veel midagi</td>'; //hidden väljalt saabuvad muutujad, kui pole annad ette mingi default väärtuse if(isset($_POST['muutuja'])){$muutuja2 = $_POST['muutuja']; $muutuja = $muutuja2[$i-1]; }else{ $muutuja = 'muutuja'; } //kui saabub INPUT väljalt muudetud väärtus $ed = $_POST['ed']; if($ed[$i]!=''){ $muutuja = $ed[$i]; //kui pole number, siis class külge sellele, kontroll sisse ja $checkbox masiivi vastav rida sisse if(number($muutuja)== false){ $clas = 'class="fa"';$k=1;$checkbox[]=$i;}else{$clas = '';$k=0;} } } // vajutati edit nuppu või polnud sisestatud number if(isset($_POST['edit']) or $k== 1){ if(isset($_POST['checkbox'])){$checkbox = $_POST['checkbox']; } // kui massiivis $checkbox on vastav rida kirjutad INPUT kasti ja name paned kindla numbrigaa if(in_array($i, $checkbox)){echo '<input type="text" name="ed['. $i. ']" value="'. $muutuja. '"/>'; } // ilma check ita read tulevad tavatekstina } else{ // esimene käivitus, kõik read tavatekstina <input type="hidden" name="muutuja[]" value="'.$muutuja.'"/> <td align="right"><input type="checkbox" name="checkbox[]" value="'.$i.'" /></td> </tr> '; } ?> </table> <input type="submit" name="edit" value="Edit"/> </form>
|
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|