Exiliado Otra Vez
Exiliado
- Registrado
- 2016/10/09
- Mensajes
- 995
Tengo una duda sobre un código que me pasaron.
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
1.- No cacho la necesidad de crear $pelicula y no poner directamente un valor cualquier.<?php
$pelicula = $_REQUEST['movie'];
$pregunta = new stdClass();
$pregunta->titulo = "$pelicula";
$pregunta->categoria = "Cultura";
$pregunta->respuestas = array("respuesta1"=>8850,"respuesta2"=>8900,"respuesta3"=>8875);
$json = json_encode($pregunta);
echo $json;
?>
2.- No cacho la función de "movie: pelicula" y si tiene alguna relación con $pelicula y el request 'movie'.<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="https://code.jquery.com/jquery-2.1.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$( "#buscar" ).click(function() {
var pelicula = $('#name').val();
console.log(pelicula);
$.getJSON('data.php',{format: "json", movie: pelicula }, function(data) {
var valResp="";
$("h1").html('titulo:'+data['titulo']);
$("h3").html('categoria:'+data['categoria']);
$.each(data['respuestas'], function(key, val) {
valResp=valResp+'<li id="' + key + '">' + val + '</li>';
});
$("ul").html(valResp);
});
});
});
</script>
</head>
<body>
<input type="text" name="movie" id="name">
<input type="submit" id="buscar">
<h1></h1>
<h3></h3>
<ul>
</ul>
</body>
</html>
1.- La idea se supone que es tener un sistema que se le ingresen datos. Si pones algo fijo en esa parte se pierde el propósito. El valor se le asigna desde $_REQUEST["movie"]. Lee lo que es la variable $_REQUEST (lee también lo q es $_GET y $_POST) en php y entenderás más fácil, y efectivamente tiene que ver con tu pregunta 2.Ya, buena.
Tengo 2 páginas:
La 1:
1.- No cacho la necesidad de crear $pelicula y no poner directamente un valor cualquier.
La 2:
2.- No cacho la función de "movie: pelicula" y si tiene alguna relación con $pelicula y el request 'movie'.
3.- No sé qué hace "name" e "id".
1.- La idea se supone que es tener un sistema que se le ingresen datos. Si pones algo fijo en esa parte se pierde el propósito. El valor se le asigna desde $_REQUEST["movie"]. Lee lo que es la variable $_REQUEST (lee también lo q es $_GET y $_POST) en php y entenderás más fácil, y efectivamente tiene que ver con tu pregunta 2.
2.- $.getJSON recibe 3 parametros: una url, un objeto con parametros adicionales, y una funcion que se ejecuta cuando se termina de cargar la url. Lo que preguntas es simplemente un objeto que tiene pares de variable=>valor, es decir, a la url le envias además la variable "movie" con el valor de "pelicula", que anteriormente definiste como var pelicula = $('#name').val();. Posteriormente, El php de la pregunta 1 recibe esa variable usando $_REQUEST["movie"].
3.- "name" es el nombre del input al ser enviado dentro de un formulario. "id" es un identificador, no se envia en el formulario pero se usa para los scripts del lado del cliente, en este caso se usa en tu pregunta 2 para hacer referencia al input y guardar el valor que tiene en la variable pelicula (var pelicula = $('#name').val(); )
Finalmente, te recomiendo que leas la teoría básica, las definiciones de todo lo básico de html, css, js y jquery, ya que todas las weas que preguntaste las sabrías si hubieras leído las putas definiciones
la segunda opcion del getJson son los parametros que le envias al data.php, en este caso dice que hay un input con id "name" (var pelicula = $('#name').val() al que le sacas el valor al hacer click, este valor lo envias en el movie: pelicula.. con eso en el data.php lo puedes traer con $_REQUEST['movie'];
y con ese valor puedes hacer una consulta sql o la wea que quieras
el console.log() es para mostrar un mensaje en consola, ese mensaje lo puedes ver en las herramientas de desarrollador del explorador (f12), se usa para ir probando el codigo no mas
2.- $.getJSON recibe 3 parametros: una url, un objeto con parametros adicionales, y una funcion que se ejecuta cuando se termina de cargar la url. Lo que preguntas es simplemente un objeto que tiene pares de variable=>valor, es decir, a la url le envias además la variable "movie" con el valor de "pelicula", que anteriormente definiste como var pelicula = $('#name').val();. Posteriormente, El php de la pregunta 1 recibe esa variable usando $_REQUEST["movie"].
3.- "name" es el nombre del input al ser enviado dentro de un formulario. "id" es un identificador, no se envia en el formulario pero se usa para los scripts del lado del cliente, en este caso se usa en tu pregunta 2 para hacer referencia al input y guardar el valor que tiene en la variable pelicula (var pelicula = $('#name').val(); )
Finalmente, te recomiendo que leas la teoría básica, las definiciones de todo lo básico de html, css, js y jquery, ya que todas las weas que preguntaste las sabrías si hubieras leído las putas definiciones
Jquery? en el 2016?
Cambiate a algo más moderno como React
O Angular que es lo que usan casi todos los desarrolladores webs en Chile mientras el mundo avanza a React y otras soluciones.
En este caso no tiene nada que ver y de hecho es totalmente irrelevante la parte ' name="movie" ', ya que no existe ningún formulario que esté mandando información. Así que, no es que sea lo mismo y se haga 2 veces, sino que el parámetro está demás ya que envias el dato por getJSON, no por un formulario3.- Aquí lo que no cacho. El input de id "name" tiene name "movie", o sea lo recuperaré en data.php haciendo el request a "movie", que es lo mismo que se haría arriba.
En este caso no tiene nada que ver y de hecho es totalmente irrelevante la parte ' name="movie" ', ya que no existe ningún formulario que esté mandando información. Así que, no es que sea lo mismo y se haga 2 veces, sino que el parámetro está demás ya que envias el dato por getJSON, no por un formulario
Mandar las weas por formulario y trabajar usando ajax son formas distintas de trabajar. Con formularios pones el tag de la wea con el action, method (y si tiene archivos enctype) y al presionar un botón tipo "submit" se envian todos los inputs y textarea que tengan el parametro "name" puesto. En cambio con ajax recolectas a mano los valores que tienes que mandar, los mandas sin salir de la página actual y luego puedes hacer algo con la respuesta.Al momento de no poner:
<form method="post" action="data.php">
No se manda ninguna variable "movie", con lo escrito en el input, a data.php por medio del formulario entonces?, o también, al no ponerlo el formulario por sí solo no funciona y por eso hay que meterle identificadores para ocuparlos en la misma página de manera que el getJSON los mande a data.php?
El console.log no es necesario, verdad?
Mandar las weas por formulario y trabajar usando ajax son formas distintas de trabajar. Con formularios pones el tag de la wea con el action, method (y si tiene archivos enctype) y al presionar un botón tipo "submit" se envian todos los inputs y textarea que tengan el parametro "name" puesto. En cambio con ajax recolectas a mano los valores que tienes que mandar, los mandas sin salir de la página actual y luego puedes hacer algo con la respuesta.
Para el creador del tema.
https://laravel.com/
Una vez que sepas los conceptos básicos de PHP.
Por cierto. console.log lo que hace es enviarte un mensaje a traves de la consola. Presiona Control + Shift + J (al mismo tiempo) en Google Chrome para verla.
Te recomiendo revisar conceptos básicos de PHP (hay un montón de tutoriales) y de Javascript.