Diferencia entre revisiones de «PHP Javascript e php»

De MediaWiki
Ir a la navegación Ir a la búsqueda
(Página creada con «==Introducción== * Neste módulo se presupón que o alumno xa coñece javascript, ao cursar o módulo '''Desenvolvemento Web en Contorno Servidor''', polo que non se vai…»)
 
 
(No se muestra una edición intermedia del mismo usuario)
Línea 13: Línea 13:
  
 
<br />
 
<br />
−
===confirm personalizado===
+
===Confirm personalizado===
  
 
* Cando pedimos confirmación para borrar un dato, podemos obter o nome do dato e amosalo como parte da cadea de confirm.  
 
* Cando pedimos confirmación para borrar un dato, podemos obter o nome do dato e amosalo como parte da cadea de confirm.  
 +
::<syntaxhighlight lang="java" enclose="div" highlight="15" >
 +
        @foreach ($perfumes as $perfume)
 +
            <tr>
 +
                <td>{{ $perfume->descripcion }}</td>
 +
                <td>{{ $perfume->prezo }}</td>
 +
                <td>{{ $perfume->data_compra }}</td>
 +
                <td>
 +
                    <a style='text-decoration:none' href="{{ route('perfumes.edit', ['perfume' => $perfume->id]) }}">Modificar</a>
  
 +
                    <form action="{{ route('perfumes.destroy', ['perfume' => $perfume->id]) }}" method="POST"
 +
                        style="display:inline;">
 +
                        @csrf
 +
                        @method('DELETE')
 +
                        <input type="hidden" name="id" value="{{ $perfume->id }}">
 +
                        <button type="submit"
 +
                            onclick="return confirm('Estás seguro de eliminar o perfume {{ $perfume->descripcion }}?');"
 +
                            style="background:none;border:none;color:blue;cursor:pointer;">Eliminar</button>
 +
                    </form>
 +
                </td>
 +
            </tr>
 +
        @endforeach
  
  
 +
</syntaxhighlight>
  
  
  
 +
<br />
 +
===Alertas javascript con datos do servidor===
 +
: Cando damos de alta un novo perfume, o id xerado aparece en pantalla.
 +
: Imaxinemos que queremos enviar o dato a unha función javascript que amose cun alert o id xerado.
  
 +
* Creamos o arquivo '''resources/views/mensaxes/alertas_javascript.blade.php'''
 +
::<syntaxhighlight lang="java" enclose="div" highlight="" >
 +
@if (Session::has('javascriptalert') && !empty(Session::get('javascriptalert')))
 +
    <script>
 +
        var msg = '{{Session::get('javascriptalert')}}';
 +
        alert(msg);
 +
    </script>
 +
@endif
 +
 +
</syntaxhighlight>
 +
: Basicamente estamos a preguntar se existe a variable de sesión 'javascriptalert' para amosar o contido cun alert.
 +
 +
 +
 +
* Incluimos dito arquivo na vista '''resources/views/perfumes/form_alta_perfumes.blade.php'''
 +
: O poñemos nesta vista xa que cando damos de alta un perfume nos mantemos nesta pantalla. Se non fora o caso, por exemplo, se cargamos index, teríamos que poñelo nesa.
 +
::<syntaxhighlight lang="java" enclose="div" highlight="" >
 +
  ..........
 +
 +
    @include('mensaxes.alertas_javascript')
 +
 +
@endsection
 +
</syntaxhighlight>
 +
 +
 +
* Agora no controlador cando queiramos enviar a mensaxe do novo perfume creado: '''Arquivo: app/Http/Controllers/PerfumeController.php'''
 +
::<syntaxhighlight lang="java" enclose="div" highlight="" >
 +
  ...........
 +
  return redirect(route('perfumes.create'))->with(['idPerfume' => $perfume->id])->with('javascriptalert',"Perfume creado correctamente có id $perfume->id");
 +
 +
 +
</syntaxhighlight>
 +
 +
 +
 +
 +
<br />
 
[https://wiki.cifprodolfoucha.es/index.php?title=Programaci%C3%B3n_con_PHP#UNIDADE_7:_Aplicaci.C3.B3ns_web_din.C3.A1micas:_PHP_e_Javascript Volver á UD7]
 
[https://wiki.cifprodolfoucha.es/index.php?title=Programaci%C3%B3n_con_PHP#UNIDADE_7:_Aplicaci.C3.B3ns_web_din.C3.A1micas:_PHP_e_Javascript Volver á UD7]
  
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2024).
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2024).

Revisión actual del 09:45 9 abr 2025

Introducción

  • Neste módulo se presupón que o alumno xa coñece javascript, ao cursar o módulo Desenvolvemento Web en Contorno Servidor, polo que non se vai explicar o funcionamento de Javascript ou JQuery.



Exemplos de uso


Confirm personalizado

  • Cando pedimos confirmación para borrar un dato, podemos obter o nome do dato e amosalo como parte da cadea de confirm.
        @foreach ($perfumes as $perfume)
            <tr>
                <td>{{ $perfume->descripcion }}</td>
                <td>{{ $perfume->prezo }}</td>
                <td>{{ $perfume->data_compra }}</td>
                <td>
                    <a style='text-decoration:none' href="{{ route('perfumes.edit', ['perfume' => $perfume->id]) }}">Modificar</a>

                    <form action="{{ route('perfumes.destroy', ['perfume' => $perfume->id]) }}" method="POST"
                        style="display:inline;">
                        @csrf
                        @method('DELETE')
                        <input type="hidden" name="id" value="{{ $perfume->id }}">
                        <button type="submit"
                            onclick="return confirm('Estás seguro de eliminar o perfume {{ $perfume->descripcion }}?');"
                            style="background:none;border:none;color:blue;cursor:pointer;">Eliminar</button>
                    </form>
                </td>
            </tr>
        @endforeach



Alertas javascript con datos do servidor

Cando damos de alta un novo perfume, o id xerado aparece en pantalla.
Imaxinemos que queremos enviar o dato a unha función javascript que amose cun alert o id xerado.
  • Creamos o arquivo resources/views/mensaxes/alertas_javascript.blade.php
@if (Session::has('javascriptalert') && !empty(Session::get('javascriptalert')))
    <script>
        var msg = '{{Session::get('javascriptalert')}}';
        alert(msg);
    </script>
@endif
Basicamente estamos a preguntar se existe a variable de sesión 'javascriptalert' para amosar o contido cun alert.


  • Incluimos dito arquivo na vista resources/views/perfumes/form_alta_perfumes.blade.php
O poñemos nesta vista xa que cando damos de alta un perfume nos mantemos nesta pantalla. Se non fora o caso, por exemplo, se cargamos index, teríamos que poñelo nesa.
   ..........

    @include('mensaxes.alertas_javascript')

@endsection


  • Agora no controlador cando queiramos enviar a mensaxe do novo perfume creado: Arquivo: app/Http/Controllers/PerfumeController.php
   ...........
   return redirect(route('perfumes.create'))->with(['idPerfume' => $perfume->id])->with('javascriptalert',"Perfume creado correctamente có id $perfume->id");




Volver á UD7


-- Ángel D. Fernández González -- (2024).