fonction dopostback - HTML/CSS - Programmation
Marsh Posté le 23-06-2005 à 12:20:12
L'idée m'intéresse.
J'ai un formulaire avec une ligne de paramètres à entrer.
Je veux pouvoir ajouter une nouvelle ligne similaire en cliquant sur un bouton.
Quelqu'un connait un site qui utilise ce genre de script (ou un tutorial ?)
à bientôt.
Marsh Posté le 23-06-2005 à 12:21:24
Pouet, parce que ça repose entièrement sur JS, donc pas top
Marsh Posté le 23-06-2005 à 12:29:19
FlorentG a écrit : Pouet, parce que ça repose entièrement sur JS, donc pas top |
ok, mais existe-t-il d'autres alternatives ? CSS ?
Je n'ai pas le souvenir d'avoir vu ce genre de choses autrement qu'en JS.
L'idée est d'éviter d'avoir 36 lignes par défaut dans le formulaire pour qu'il reste lisible.
Marsh Posté le 23-06-2005 à 12:30:45
C'est possible en PHP, mais ça nécessitera un va-et-vient d'information entre le serveur et le client à chaque fois que je veux ajouter une ligne, c'est pas top.
Marsh Posté le 23-06-2005 à 13:50:56
FlorentG a écrit : Pouet, parce que ça repose entièrement sur JS, donc pas top |
En même temps si ce n'est que l'extensibilité du formulaire (-> amélioration de l'user experience) c'est pas gênant, tant que le formulaire de base reste utilisable sans JS
Marsh Posté le 23-06-2005 à 13:52:23
effisk a écrit : ok, mais existe-t-il d'autres alternatives ? CSS ? |
CSS :
Citation : CSS 2.1 is a style sheet language that allows authors and users to attach style (e.g., fonts and spacing) to structured documents (e.g., HTML documents and XML applications). By separating the presentation style of documents from the content of documents, CSS 2.1 simplifies Web authoring and site maintenance. |
Quel rapport avec notre formulaire ?
masklinn a écrit : En même temps si ce n'est que l'extensibilité du formulaire (-> amélioration de l'user experience) c'est pas gênant, tant que le formulaire de base reste utilisable sans JS |
C'est sûr
Marsh Posté le 23-06-2005 à 13:53:19
D'ailleurs un truc marrant que j'ai remarqué. Quand on signale qu'un truc est relou à faire en JS, automatiquement y'a au moins un gars qui demande si c'est faisable en CSS
Marsh Posté le 23-06-2005 à 13:58:28
FlorentG a écrit : D'ailleurs un truc marrant que j'ai remarqué. Quand on signale qu'un truc est relou à faire en JS, automatiquement y'a au moins un gars qui demande si c'est faisable en CSS |
Les gens ont déjà du mal à séparer les couches d'une application, alors sur une page web hein
Marsh Posté le 23-06-2005 à 14:03:29
FlorentG a écrit : CSS :
|
Eh bien avec une CSS, on peut faire mettons 30 lignes qu'on va cacher avec l'aide de la CSS et qui apparaîtront une par une à chaque fois qu'on clique sur un bouton.
C'est con ce que je dis ?
Marsh Posté le 23-06-2005 à 14:05:24
effisk a écrit : Eh bien avec une CSS, on peut faire mettons 30 lignes qu'on va cacher avec l'aide de la CSS et qui apparaîtront une par une à chaque fois qu'on clique sur un bouton. |
Oui
1- parce qu'aucun pseudo évènement CSS n'est associé aux clics (donc on ne peut de tte façon pas le faire, sauf avec :focus et ça devient un bordel immonde)
2- parce qu'on charge du markup inutile et probablement innomable pour mettre en place un truc pareil
3- parce qu'on retrouve le problème si on veut remplir... say... 60 champs
Marsh Posté le 23-06-2005 à 14:11:52
masklinn a écrit : Oui |
1/ oui en fait que je disais "bouton" je pensais à un lien quoi. ok.
2/ je m'en doutais un peu mais bon...
3/ je m'attendais à celle-là. Supposons que 30 soit déjà beaucoup (et si c'est plus on soumet le formulaire et on recommence, pas grave).
Donc pas de JS, pas de PHP, pas de CSS. Il reste quoi ?
Marsh Posté le 23-06-2005 à 14:13:17
Ben si, du PHP déjà... Et pis du JS pourquoi pas pour apporter un peu de confort pour ceux qui en disposent...
Marsh Posté le 23-06-2005 à 14:15:56
effisk a écrit : Donc pas de JS, pas de PHP, pas de CSS. Il reste quoi ? |
Faudrait ptet lire mes posts
Marsh Posté le 23-06-2005 à 14:18:01
FlorentG a écrit : Ben si, du PHP déjà... Et pis du JS pourquoi pas pour apporter un peu de confort pour ceux qui en disposent... |
Bon en fait le formulaire est en PHP.
Le JS est effectivement là pour apporter du "confort", i.e. faciliter la saisie de données en créant une nouvelle ligne de façon simple et rapide si besoin.
Finalement, le JS de guen16 ne va pas ?
Marsh Posté le 23-06-2005 à 14:18:49
masklinn a écrit : Faudrait ptet lire mes posts |
masklinn a écrit : En même temps si ce n'est que l'extensibilité du formulaire (-> amélioration de l'user experience) c'est pas gênant, tant que le formulaire de base reste utilisable sans JS |
C'est exactement ça
Marsh Posté le 23-06-2005 à 14:42:39
effisk a écrit : Bon en fait le formulaire est en PHP. |
Chais pas, j'ai pas trop eu le courage de lire son code vu comme il est "propre", mais j'ai l'impression qu'il submit son formulaire à chaque fois, donc ça n'a rien à voir, il aurait mis un submit normal à la place de son machin qui fait de la magie noire ça aurait donné le même résultat
Marsh Posté le 23-06-2005 à 15:19:39
j'aodre les formulaires fait avec des tableaux lauleee
ca allourdi la page à mort
Marsh Posté le 23-06-2005 à 11:08:36
Bonjour
je n'ai jamais fait de javascript et de plus je suis un mauvais..
mais j'avais besoin dans un formulaire de commande de pouvoir rajouter la meme ligne pour rajouter un autre produit :
<form name="Vin" method="POST" action="formcomm.php" id="Vin">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft" ) > -1) {
theform = document.Vin;
}
else {
theform = document.forms["Vin"];
}
theform.__EVENTTARGET.value = eventTarget.split("$" ).join(":" );
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
<table border=0>
<tr>
<td valign=top width="30%">
Fournisseur* :
</td>
<td align=left>
<select name="NomFournisseur">
<?php
$server='localhost';
$user='root';
$password='';
$db = mysql_connect($server,$user,$password) or die('Erreur de connexion '.mysql_error());
mysql_select_db('red cash',$db) or die('Erreur de selection '.mysql_error());
$requete = "SELECT NomFournisseur FROM fournisseurs";
$result=mysql_query($requete,$db) or die('Erreur SQL !'.$requete.'<br>'.mysql_error());
$i = mysql_num_rows($result);
$compteur = 0;
while ($compteur<$i) {
$var = mysql_result($result, $compteur, "NomFournisseur" );
echo "<option value=".$var.">".$var."</option>";
$compteur ++;
}
?>
</select>
</td>
</tr>
</table>
<table border=0>
<tr>
<td valign=top width="10%">
Vins :
</td>
<td valign=top width="10%">
<select name="NomVin" size=1>
<?php
$requete2 = "SELECT NomProduit, PrixUnitaireHT FROM produits p, départements d WHERE p.numdepartement=d.numdepartement AND nomdepartement='Vin'";
$result2=mysql_query($requete2,$db) or die('Erreur SQL !'.$requete2.'<br>'.mysql_error());
$i2 = mysql_num_rows($result2);
$compteur2 = 0;
while ($compteur2<$i2) {
$NomVin = mysql_result($result2, $compteur2, "NomProduit" );
$PHTVin = mysql_result($result2, $compteur2, "PrixUnitaireHT" );
echo "<option value=".$NomVin.">".$NomVin."   ".$PHTVin." "."</option>";
$compteur2 ++;
}
?>
</select>
</td>
<td valign=top width="10%">Quantité : </td>
<td valign=top width="10%">
<INPUT TYPE="TEXT" name="QuantiteVin" align="top" size="5" maxlength="4">
</td>
<td valign=top width="15%">
Conditionnement :
</td>
<td valign=top width="10%">
<select name="ConditionnementVin" size=1>
<?php
$requete21 = "SELECT NomConditionnement FROM conditionnements ";
$result21=mysql_query($requete21,$db) or die('Erreur SQL !'.$requete21.'<br>'.mysql_error());
$i21 = mysql_num_rows($result21);
$compteur21 = 0;
while ($compteur21<$i21) {
$NomConditionnement = mysql_result($result21, $compteur21, "NomConditionnement" );
echo "<option value=".$NomConditionnement.">".$NomConditionnement."</option>";
$compteur21 ++;
}
?>
</select>
</td>
<td valign=top width="15%">
Promotion :
</td>
<td valign=top width="10%">
<INPUT TYPE="TEXT" name="PromotionVin" align="top" size="5" maxlength="20">
</td>
</tr>
<tr><td colspan=5><a href="javascript:__doPostBack('Send$_ctl0','')">Ajouter un autre vin</a><br>
</td></tr>
et au fait au lieu de me rajouter un ligne, ca m'ouvre la page de destination du formulaire...pourrait-on m'indiquer l'erreur ou m'orienter
---------------
merci