Amélioration retour formulaire, 2 possibilités
1. Methode 1, la plus simple, seulement le php - $retours['message_ok'] = gamutable_fermer_modalbox(); 2. Methode 2, on modifie le php et le html - php => $retours['message_ok'] = $id_objet; - html => <INCLURE{fond=inclure/redirect_form,env}>
This commit is contained in:
parent
ded13ab3bc
commit
9da7817029
3 changed files with 43 additions and 57 deletions
64
README.md
64
README.md
|
@ -99,70 +99,20 @@ function prefixPlugin_post_edition($flux){
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
5. Pour utiliser une **mediabox** ou **modalbox** et rechargement total/partiel de la page: on peut demander à vuejs de recharger tout le json ou simplement une ligne dans le cas d'une modification
|
1. Pour utiliser une **mediabox** ou **modalbox** et rechargement total/partiel de la page: on peut demander à vuejs de recharger tout le json ou simplement une ligne dans le cas d'une modification
|
||||||
1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json)
|
1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json)
|
||||||
```html
|
```html
|
||||||
"modif" : [(#VAL{<a class="modalbox" href="[(#URL_PAGE{souscrire}|parametre_url{id_souscription,#ID_SOUSCRIPTION}|parametre_url{redirect,gamutable})]"><i class="fa fa-pencil"></i></a>}|json_encode)],
|
"modif" : [(#VAL{<a class="modalbox" href="[(#URL_PAGE{souscrire}|parametre_url{id_souscription,#ID_SOUSCRIPTION}|parametre_url{redirect,gamutable})]"><i class="fa fa-pencil"></i></a>}|json_encode)],
|
||||||
```
|
```
|
||||||
2. on charge en ajax le formulaire en l'englobant d'une div avec la classe ajax (du pur spip) dans ce cas, à la validation du form, si pas de `redirect` spécifié alors, retour dans le formualaire, avec le message `$retour['message_ok']` qui s'affiche.
|
2. On charge en ajax le formulaire en l'englobant d'une div avec la classe ajax (du pur spip)
|
||||||
Détournement de SPIP: dans le message_ok, on fais passer l'id de la cle primaire qui va declencher le rechargement du json QUE pour cette ligne et ca c'est vuejs qui s'en occupe ici (html du formulaire):
|
3. Dans le traiter du formulaire => supprimer la redirection et on ajoute :
|
||||||
```html
|
|
||||||
[(#ENV**{message_ok}|=={gamutable}|oui)
|
|
||||||
<script type="text/javascript">
|
|
||||||
app.rechargerJson();
|
|
||||||
$.modalboxclose();
|
|
||||||
</script>
|
|
||||||
]
|
|
||||||
```
|
|
||||||
3. Dans le traiter du formulaire => supprimer la redirection et ajouter :
|
|
||||||
```php
|
```php
|
||||||
if ($retour === 'gamutable') {
|
if ($retour === 'gamutable') {
|
||||||
$res['redirect'] = "";
|
$res['redirect'] = "";
|
||||||
$res['message_ok'] = "gamutable";
|
// pour recharger que la ligne $id_patate du tableau
|
||||||
|
$res['message_ok'] = gamutable_fermer_modalbox($id_patate);
|
||||||
|
// ou si on veut recharger tout le tableau
|
||||||
|
$res['message_ok'] = gamutable_fermer_modalbox();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
4. Dans le html du formulaire, ajouter :
|
|
||||||
```html
|
|
||||||
[(#ENV**{message_ok}|=={gamutable}|oui)
|
|
||||||
<script type="text/javascript">
|
|
||||||
app.rechargerJson();
|
|
||||||
$.modalboxclose();
|
|
||||||
</script>
|
|
||||||
]
|
|
||||||
```
|
|
||||||
*il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter une popin de confirmation*
|
*il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter une popin de confirmation*
|
||||||
|
|
||||||
5. Un exemple plus concret:
|
|
||||||
- le HTML du formulaire:
|
|
||||||
```html
|
|
||||||
[(#ENV**{message_ok}|oui)
|
|
||||||
<script type="text/javascript">
|
|
||||||
id = "#ENV**{message_ok}";
|
|
||||||
id = parseInt(id);
|
|
||||||
if (id > 0 && id < 9999999999) {
|
|
||||||
app.rechargerJson(id);
|
|
||||||
$.modalboxclose();
|
|
||||||
}
|
|
||||||
if (id === 9999999999) {
|
|
||||||
app.rechargerJson();
|
|
||||||
$.modalboxclose();
|
|
||||||
}
|
|
||||||
delete id;
|
|
||||||
</script>
|
|
||||||
]
|
|
||||||
```
|
|
||||||
- le traiter du PHP:
|
|
||||||
```php
|
|
||||||
if ($redirect === "gamutable") {
|
|
||||||
$retour['redirect'] = "";
|
|
||||||
$retour['message_ok'] = "$id_auteur";
|
|
||||||
} elseif ($redirect === 'all'){
|
|
||||||
// on recharge dans gamuTable tout le tableau car il peut y avoir plusieurs lignes avec le meme souscripteur
|
|
||||||
$retour['redirect'] = "";
|
|
||||||
$retour['message_ok'] = "9999999999";
|
|
||||||
}else {
|
|
||||||
$retour['redirect'] = $redirect;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,3 +12,22 @@
|
||||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function gamutable_fermer_modalbox($id_objet = 9999999999){
|
||||||
|
$html = <<<EOJS
|
||||||
|
<script type="text/javascript">
|
||||||
|
id = "$id_objet";
|
||||||
|
id = parseInt(id);
|
||||||
|
if (id > 0 && id < 9999999999) {
|
||||||
|
app.rechargerJson(id);
|
||||||
|
$.modalboxclose();
|
||||||
|
}
|
||||||
|
if (id === 9999999999) {
|
||||||
|
app.rechargerJson();
|
||||||
|
$.modalboxclose();
|
||||||
|
}
|
||||||
|
delete id;
|
||||||
|
</script>
|
||||||
|
EOJS;
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
17
inclure/redirect_form.html
Normal file
17
inclure/redirect_form.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#CACHE{0}
|
||||||
|
|
||||||
|
[(#ENV**{message_ok}|oui)
|
||||||
|
<script type="text/javascript">
|
||||||
|
id = "#ENV**{message_ok}";
|
||||||
|
id = parseInt(id);
|
||||||
|
if (id > 0 && id < 9999999999) {
|
||||||
|
app.rechargerJson(id);
|
||||||
|
$.modalboxclose();
|
||||||
|
}
|
||||||
|
if (id === 9999999999) {
|
||||||
|
app.rechargerJson();
|
||||||
|
$.modalboxclose();
|
||||||
|
}
|
||||||
|
delete id;
|
||||||
|
</script>
|
||||||
|
]
|
Loading…
Add table
Reference in a new issue