Formulaire avec un tableau de données
Bonjour à tous.
Aujourd'hui, mon code marche très bien. Mais je souhaiterais l'optimisé.
Mon code est pas trop moche, la plupart du temps, sauf certaines parties que je souhaiterais réécrire, dont celle ci:
J'ai un formulaire, dans lequel je souhaite générer un tableau tout bête, avec un nombre de ligne variable (et j'ai un bouton pour rajouter des lignes)
Actuellement je procède comme ceci (donc le tableau est pas en zend :/)
j'explique, je fais une refonte d'un site, outil interne de mon entreprise, site qui avait été codé très très salement ( tout le code ressemblait à ça en gros ), j'ai décidé de le refaire en zend. Chose faite, sauf sur certaines parties, simplement parce que je ne vois pas comment faire sous zend.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<table><tr>
<th>blabla</th>
<th>blabla</th>
<th>blabla</th></tr>
<?php $nbligne = 5;
for ($i = 1; $i <= $nbligne; $i++) {?>
<tr>
<td>echo $i</td>
<td class="class_+$i">input</td>
<td class="class_+$i">input2</td>
</tr>
<?php } ?>
</table> |
(voici le code plus complexe, vous comprenez maintenant pourquoi je souhaite l'optimiser)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<table name="table_ancre" id="compolie_table" style="<?php
if (isset($_POST['compolie']) && $_POST['compolie'] == 2) {
echo "display:block;";
} elseif (isset($_SESSION['compolie_act']) && $_SESSION['compolie_act'] === true) {
echo "display:block;";
$_SESSION['compolie_act'] = "";
} else {
echo "display: none;";
}
?>"
>
<tr>
<th id="first_x" width="20px" align="center"> X</th>
<th id="second_item" width="50px">Item</th>
<th id="code_article" width="140px">Code article/scan Etiquette</th>
<th id="qtt" class="qtt" width="140px">Qt</th>
<th id="desc" width="100px">Description</th>
<?php
if (isset($_POST['statutupdate']) && $_POST['statutupdate'] == "ok") {
} else {
?>
<th id="nothing" width="10px"> </th>
<?php } ?>
</tr>
<?php
if (isset($_SESSION['nbligne2']) && $_SESSION['nbligne2'] != "") {
$nbligne = $_SESSION['nbligne2'];
$_SESSION['nbligne2'] = "";
} elseif (isset($_POST['nbligne']) && $_POST['nbligne'] != 0 && $_POST['nbligne2'] == "") {
$nbligne = $_POST['nbligne'];
} elseif (isset($_SESSION['compolie_table_article'])) {
$nbligne = count($_SESSION['compolie_table_article']);
} else {
$nbligne = 5;
} for ($i = 1; $i <= $nbligne; $i++) {
?>
<tr>
<th width="20px" align="center"> </th>
<th width="50px"><?php echo ($i); ?></th>
<th width="140px">
<input <?php
if (isset($_POST['statutupdate']) && $_POST['statutupdate'] == "ok") {
echo 'readonly = "readonly"';
}
?> id="compolielieca_<?php echo $i; ?>" value="<?php
if (isset($_POST['compolieca_' . $i]) && ($_POST['compolieca_' . $i]) != '') {
echo $_POST['compolieca_' . $i];
} elseif (isset($_SESSION['compolie_table_article'][$i])) {
echo $_SESSION['compolie_table_article'][$i];
$_SESSION['compolie_table_article'][$i] = "";
}
?>" class="input_compo_lie" type="text" tabindex="<?php echo (7 + ($i * 3)) ?>" autocomplete="off" value=""
onblur="document.getElementById('compolielieca_<?php echo $i; ?>').value=(document.getElementById('compolielieca_<?php echo $i; ?>').value).toUpperCase();
document.getElementById('compolieliedesc_<?php echo $i; ?>').value= iAjaxQuestionSimple(compolieChange()+document.getElementById('compolielieca_<?php echo $i; ?>').value);
if (document.getElementById('compolieliedesc_<?php echo $i; ?>').value=='' && document.getElementById('qm_sap_num[<?php echo $i; ?>]').value !='')
{
alert('Cet article n\'existe pas');
document.getElementById('compolielieca_<?php echo $i; ?>').value='';
document.getElementById('compolielieca_<?php echo $i; ?>').focus();
}"
name="compolieca_<?php echo $i; ?>">
</th>
<th width="140px"><input <?php
if (isset($_POST['statutupdate']) && $_POST['statutupdate'] == "ok") {
echo 'readonly = "readonly"';
}
?> id="compolielieqt_<?php echo $i; ?>" value="<?php
if (isset($_POST['compolieqt_' . $i]) && ($_POST['compolieqt_' . $i]) != '') {
echo $_POST['compolieqt_' . $i];
} elseif (isset($_SESSION['compolie_table_qtte'][$i])) {
echo $_SESSION['compolie_table_qtte'][$i];
$_SESSION['compolie_table_qtte'][$i] = '';
}
?>" class="input_compo_lie" type="text" tabindex="<?php echo (8 + ($i * 3)) ?>" autocomplete="off" value="" name="compolieqt_<?php echo $i; ?>">
</th>
<th width="100px"><input id="compolieliedesc_<?php echo $i; ?>" value="<?php
if (isset($_POST['compoliedesc_' . $i]) && ($_POST['compoliedesc_' . $i]) != '') {
echo $_POST['compoliedesc_' . $i];
} elseif (isset($_SESSION['compolie_table_desc'][$i])) {
echo $_SESSION['compolie_table_desc'][$i];
$_SESSION['compolie_table_desc'][$i] = '';
}
?>" class="input_compo_lie" type="text" readonly="readonly" autocomplete="off" value="" name="compoliedesc_<?php echo $i; ?>">
</th>
<?php
if (isset($_POST['statutupdate']) && $_POST['statutupdate'] == "ok") {
} else {
?>
<th class="th_delligne" width="10px">
<a class="delligne" onclick="
var LigneEnCours= 1;
var LigneSuivante=0;
var LigneMax = document.getElementById('nbligne').value;
LigneEnCours = <?php echo $i; ?>;
while(LigneEnCours<LigneMax)
{
LigneSuivante= LigneEnCours+1;
document.getElementById('compolielieca_'+LigneEnCours).value=document.getElementById('compolielieca_'+LigneSuivante).value;
document.getElementById('compolielieqt_'+LigneEnCours).value= document.getElementById('compolielieqt_'+LigneSuivante).value;
document.getElementById('compolieliedesc_'+LigneEnCours).value= document.getElementById('compolieliedesc_'+LigneSuivante).value;
LigneEnCours++;
}
document.getElementById('compolielieca_'+LigneMax).value='';
document.getElementById('compolielieqt_'+LigneMax).value='';
document.getElementById('compolieliedesc_'+LigneMax).value='';
" tabindex="<?php echo (9 + ($i * 3)) ?>" value="<?php echo ($i) ?>" href="#table_ancre">
<img border="0" title="Supprimer" alt="Supprimer" src="<?php echo SITE_URL; ?>images/delete.png">
</a>
</th>
<?php } ?>
</tr>
<?php
}
?>
<?php
if (isset($_POST['statutupdate']) && $_POST['statutupdate'] == "ok") {
} else {
?>
<tr>
<th colspan="6">
<?php echo $this->element->ajoutligne->renderViewHelper(); ?>
</th>
</tr>
<?php } ?>
</table> |