Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Llamar a un archivo php por ajax

Estas en el tema de Llamar a un archivo php por ajax en el foro de Jquery en Foros del Web. Hola de nuevo, tengo que llamar a un archivo php por "AJAX" para introducirlo dentro de un modal y no tengo ni idea de como ...
  #1 (permalink)  
Antiguo 28/10/2015, 03:02
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Llamar a un archivo php por ajax

Hola de nuevo, tengo que llamar a un archivo php por "AJAX" para introducirlo dentro de un modal y no tengo ni idea de como se hace .el archivo es el siguiente:
Código PHP:
Ver original
  1. define('USERPWD','echidna\jconesa:jconesa'); // Sustituir xxx por la contraseña del servidor
  2. include("NTLMStream.php");  
  3. include("NTLMSoapClient.php");
  4.  
  5. stream_wrapper_register('http','NTLMStream') or die("Fallo al registrar protocolo");
  6. $pageURL =  'http://128.20.1.1:7047/DynamicsNav/WS//1%20TPS-N_LAB/Page/WTADistribuciones'; // El Web Service
  7.  
  8. $page = new NTLMSoapClient($pageURL);
  9. $client = new NTLMSoapClient($pageURL);
  10.  
  11. $params = array('filter' => array(
  12.                                     array('Field' => 'Num_cliente',
  13.                                           'Criteria' => '101222'),
  14.                                          ),
  15.                 'setSize' => 0);
  16. $result = $page->ReadMultiple($params);
  17. $incidencias = $result->ReadMultiple_Result->WTADistribuciones;
  18. $result = $client->ReadMultiple($params); // El método del Web Service
  19.  
  20. /* if (is_array($incidencias)) {
  21.   foreach($incidencias as $cust) {
  22. echo '<table border=1>';
  23.  
  24. echo $cust->Num_contrato;
  25.  
  26.  
  27.   }
  28. }
  29. if (is_array($incidencias))
  30. {
  31.     echo '<table border=1>';
  32.     echo '<select>';
  33.     foreach($incidencias as $cust)
  34.     {
  35.         echo '<option>'.$cust->Num_contrato.'</option>';
  36.     }
  37.     echo '</select>';
  38.     echo '</table>';
  39. } */
  40.  
  41. if (is_array($incidencias))
  42. {   echo '<div class="form-group">';                            
  43.     echo '<label class="col-sm-3 control-label">Contratos</label>';
  44.     echo '<div class="col-sm-5">';  
  45.     echo '<select name="contratos" class="selectboxit">';
  46.     foreach($incidencias as $cust)
  47.     {
  48.         echo '<option value>'.$cust->Num_contrato.'</option>';
  49.     }
  50.     echo '</select>';
  51.     echo '</div>';
  52. }
  53.  
  54.  
  55.  
  56. die();      
  57. ?>
Alguna ayuda o guia de iniciacion para empezar con esto!!!???
  #2 (permalink)  
Antiguo 28/10/2015, 03:22
Avatar de homeres  
Fecha de Ingreso: agosto-2015
Ubicación: Murcia
Mensajes: 45
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Llamar a un archivo php por ajax

Hola Javier,

desde el fichero que quieras llamar a tu fichero PHP tienes que poner el código AJAX para hacer que la página, al enviar el formulario, se quede esperando la respuesta de la página PHP que quieres llamar con AJAX.

Un código de ejemplo sería este:

Código:
// INTERCEPTAMOS EL FORMULARIO
$('#iddetuform').submit(function() {
        var page = $(this).attr('data');        
        var dataString = 'page='+page;
	  // Enviamos el formulario usando AJAX
		$.ajax({
			type: 'POST',
			url: $(this).attr('action'),
			data: $(this).serialize(),
			// Mostramos un mensaje con la respuesta de ASP
			success: function(data) {
				$('#divDondeQuieresMostrarElficheroPHP').html(data);
			}
		}) 
		return false;
});
Espero que lo entiendas y te sirva, un saludo.
__________________
Web developer - I+D Hefame Informática

Última edición por homeres; 28/10/2015 a las 03:23 Razón: Está mal tabulado el código.
  #3 (permalink)  
Antiguo 28/10/2015, 03:25
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 9 años, 3 meses
Puntos: 3
Respuesta: Llamar a un archivo php por ajax

Algún botón al darle click pongamos que tiene que realizar una función ajax, por lo que:
Código Javascript:
Ver original
  1. $("#iddelboton").click(function(){
  2. $.ajax({
  3.   method: "POST", //Elige get o post
  4.   url: "tuarchivo.php",
  5.   data: { name: "John", location: "Boston" } //parametros que desees enviarles
  6. })
  7.   .done(function( msg ) {
  8.     alert( "Data Saved: " + msg ); //que hace al acabar el archivo.
  9.   });
  10.  });

P.D: Ten integrado jquery en la página.
  #4 (permalink)  
Antiguo 28/10/2015, 03:31
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Llamar a un archivo php por ajax

par a explicarme mejor ::
tengo un html , el cual implemento un modal(bootstrap) postee esta duda porque al hacer un inlude del php en html el modal no se mostraba (bueno no se mostraba nada) entonces me recomendaron llamar a al php por ajax
Te muestro el html(una parte solo poruqe es muy largo>)
Código PHP:
Ver original
  1. <div id="myModal2" class="modal fade" role="dialog">
  2.           <div class="modal-dialog">
  3.          
  4.             <!-- Modal content-->
  5.             <div class="modal-content">
  6.               <div class="modal-header">
  7.              
  8.                 <button type="button" class="close" data-dismiss="modal">&times;</button>
  9.                 <h4 class="modal-title">Autorizacion de Matrículas</h4>
  10.               </div>
  11.               <div class="modal-body">
  12.              
  13.                     <form class="form-horizontal">
  14.      
  15.                     <div class="form-group">
  16. <?     
  17. define('USERPWD','echidna\jconesa:jconesa'); // Sustituir xxx por la contraseña del servidor
  18. include("NTLMStream.php");  
  19. include("NTLMSoapClient.php");
  20.  
  21. stream_wrapper_register('http','NTLMStream') or die("Fallo al registrar protocolo");
  22. $pageURL =  'http://128.20.1.1:7047/DynamicsNav/WS//1%20TPS-N_LAB/Page/WTADistribuciones'; // El Web Service
  23.  
  24. $page = new NTLMSoapClient($pageURL);
  25. $client = new NTLMSoapClient($pageURL);
  26.  
  27. $params = array('filter' => array(
  28.                                     array('Field' => 'Num_cliente',
  29.                                           'Criteria' => '101222'),
  30.                                          ),
  31.                 'setSize' => 0);
  32. $result = $page->ReadMultiple($params);
  33. $incidencias = $result->ReadMultiple_Result->WTADistribuciones;
  34. $result = $client->ReadMultiple($params); // El método del Web Service
  35.  
  36. /* if (is_array($incidencias)) {
  37.   foreach($incidencias as $cust) {
  38. echo '<table border=1>';
  39.  
  40. echo $cust->Num_contrato;
  41.  
  42.  
  43.   }
  44. }
  45. if (is_array($incidencias))
  46. {
  47.     echo '<table border=1>';
  48.     echo '<select>';
  49.     foreach($incidencias as $cust)
  50.     {
  51.         echo '<option>'.$cust->Num_contrato.'</option>';
  52.     }
  53.     echo '</select>';
  54.     echo '</table>';
  55. } */
  56.  
  57. if (is_array($incidencias))
  58. {   echo '<div class="form-group">';                            
  59.     echo '<label class="col-sm-3 control-label">Contratos</label>';
  60.     echo '<div class="col-sm-5">'; 
  61.     echo '<select name="contratos" class="selectboxit">';
  62.     foreach($incidencias as $cust)
  63.     {
  64.         echo '<option value>'.$cust->Num_contrato.'</option>';
  65.     }
  66.     echo '</select>';
  67.     echo '</div>';
  68. }
  69.  
  70.  
  71.  
  72. die();     
  73. ?>         
  74.                    
  75.      
  76.                        
  77.                          
  78.                         <div class="form-group">
  79.                             <label class="col-sm-3 control-label" for="formGroup"></label>
  80.                             <div class="col-sm-8">
  81.                              
  82.                             <button type="submit" class="btn btn-success btn-lg"><span class="glyphicon glyphicon-floppy-saved"><a href="tables-datatable3.html"></span> Guardar</button>  
  83.                            
  84.                            
  85.                             <button type="button" class="btn btn-danger btn-lg"><span class="glyphicon glyphicon-remove-circle"></span> Cancelar</button>
  86.                              </div>
  87.      
  88.      
  89.                             </div>
  90.                           </div>
  91.      
  92.      
  93.      
  94.             </form>  
  95.                
  96.               </div>
  97.              
  98.               </div>
  99.             </div>
  100.          
  101.           </div>
  102.         </div>

como veras el php esta entre medio, tambien he probado con un include como te dije.
a este modal sel le llama mas tarde por el id=
Entonces segun me explicas tengo que pegar el codigo ajax en la cabecera del html??? en que parte el codigo AJAX llama al fichero php??

Disculpa la poca experiencia en este lenguaje!!!
  #5 (permalink)  
Antiguo 28/10/2015, 04:32
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 9 años, 3 meses
Puntos: 3
Respuesta: Llamar a un archivo php por ajax

Todo lo que necesites de PHP con la información del formulario lo separas en un archivo, ese archivo será al que llamarás con la información del formulario por $_POST o $_GET.

El MODAL, debes tenerlo donde está el formulario, es decir.

Pagina html: Modal y Formulario + Script de ajax.
Pagina php: Contiene los datos del formulario y ejecuta ciertas acciones.
Ajax llama a pagina php y hace luego lo que tu le programes, que el contenido se imprima dentro de un div, que el color del titulo de la pagina sea negro etc.
  #6 (permalink)  
Antiguo 28/10/2015, 05:09
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Llamar a un archivo php por ajax

Es que el formulario es el php. Es decir el php hace la funcion de llamar a un webservice el cual le responde con unos datos , esos datos les doy estilo en el php para que se muestren dentro de un selec(un desplegable ) y eete desplegable quiero que se muestre en el modal.
He copiado el script queme has posteado anteriormente y cambiando claro por mis datos dejandolo asi:
Código Java:
Ver original
  1. <script>       
  2. $("#myModal2").click(function(){
  3. $.ajax({
  4.   method: "GET", //Elige get o post
  5.   url: "contratos3.php",
  6.   data: { name: "John", location: "Boston" } //parametros que desees enviarles
  7. })
  8.   .done(function( msg ) {
  9.     alert( "Data Saved: " + msg ); //que hace al acabar el archivo.
  10.   });
  11.  });
  12.  </script>

Lo que me crea esto es que cuando abro el modal no se ve nada. solo el modal vacio. y cuando cierro el modal , el navegador me muestra un mensaje que( una de esos mensajes que muestra chrome cuando te pregunta si quieres instalar una extension)y dentro del mensaje esta todo el codigo del php.
O sea que algo estoy haciendo mal
  #7 (permalink)  
Antiguo 28/10/2015, 05:32
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 9 años, 3 meses
Puntos: 3
Respuesta: Llamar a un archivo php por ajax

Claro, el modal está vacío porque no le estás introduciendo nada.

Ejemplo:
Código HTML:
Ver original
  1. <type input="text" id="nombre">
  2. <type input="text" id="location">
  3. <button id="botonparawebservice" value="guardar">
  4.  
  5. <div modal blablabla lo que tenga el modal>
  6. <div interiordelmodal id="modalmensaje">
  7.  
  8. </div>
  9. <div final modal blablala>
  10. </div>
  11. </div>

Código Javascript:
Ver original
  1. $("#botonparawebservice").click(function(){
  2. var nombre = $("#nombre").val();
  3. var location =  $("#location").val();
  4. $.ajax({
  5.   method: "GET", //Elige get o post
  6.   url: "contratos3.php",
  7.   data: { name: nombre, location: location } //parametros que desees enviarles
  8. })
  9.   .done(function( msg ) {
  10.    $("#modalmensaje").html(msg); <------------
  11.   });
  12.  });

Última edición por hechicerd0; 28/10/2015 a las 05:39
  #8 (permalink)  
Antiguo 28/10/2015, 05:46
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Llamar a un archivo php por ajax

El div donde va el mensaje no tiene id , le he creado uno asi:
Código PHP:
Ver original
  1. <div class="form-group" id="divmodal">
pero ahora no hace nada ni siquiera el mensaje de antes del navegador, tambien me preocupa la linea data, me dices que son parametros que deseo enviar pero yo no quiero enviar ningun parametro o es que no lo entiendo. en fin ahora lo tengo asi :
Código PHP:
Ver original
  1. $("#myModal2").click(function(){
  2. $.ajax({
  3.   method: "POST", //Elige get o post
  4.   url: "contratos3.php",
  5.   data: { name: "John", location: "Boston" } //parametros que desees enviarles
  6. })
  7.   .done(function( msg ) {
  8.    $("#divmodal").html(msg);
  9. $("
  10.  });
  11. });

y asi no hace nada , sigue mostrando el modal vacio.
  #9 (permalink)  
Antiguo 28/10/2015, 06:09
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 9 años, 3 meses
Puntos: 3
Respuesta: Llamar a un archivo php por ajax

Si no deseas inviarle parametros saca la linea de data simplemente.

Tienes que hacer una función que al darle click a donde tu quieras (ponle un botón o algo), ABRA el modal Y cargue los datos del archivo php y los ponga dentro del modal.
(Si el modal está ya abierto, debes habilitar algún tipo de botón para que cargue algo)

El div donde cargar los datos debe ser este:
<div class="modal-body">

Ponle un ID, borra el contenido por javascript .empty(), luego carga lo que te de el archivo php .html(msg);

Para mirar que no peta nada, apreta F12 en tu explorador y en network saldrá cuando mandes la función, mirate que está pasando por ahí para arreglar posibles errores.

Ejemplo:

<aqui tengo el modal escondido>

<aqui tengo un boton para que se vaya al script>

<aqui tengo un script para que al darle click al boton, abra el modal y cargue el contenido dentro de un div del mismo por ajax>.
  #10 (permalink)  
Antiguo 28/10/2015, 06:25
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Llamar a un archivo php por ajax

yo diria que ya lo tengo ,
en el html el boton es este:
Código HTML:
Ver original
  1. <a class="btn btn-primary">
  2.     <i class="entypo-plus" data-toggle="modal" data-target="#myModal2">Autorizar Matrículas</i>
  3.    
  4. </a>
este boton se muestra en la web , le hago click y se abre el modal que tiene esta estructurA:

Código HTML:
Ver original
  1. <div id="myModal2" class="modal fade" role="dialog">
  2.           <div class="modal-dialog">
  3.          
  4.             <!-- Modal content-->
  5.             <div class="modal-content">
  6.               <div class="modal-header">
  7.              
  8.                 <button type="button" class="close" data-dismiss="modal">&times;</button>
  9.                 <h4 class="modal-title">Autorizacion de Matrículas</h4>
  10.               </div>
  11.               <div class="modal-body" id="mbody">
  12.  <script type="text/javascript">
  13. $("#myModal2").click(function(){
  14. $.ajax({
  15.   method: "POST", //Elige get o post
  16.   url: "contratos3.php",
  17.  
  18. })
  19.   .done(function( msg ) {
  20.    $("#mbody").html(msg);
  21. $("
  22.   });
  23.  });
  24.  </script>
  25.              
  26.                     <form class="form-horizontal">
  27.      
  28.                     <div class="form-group" id="divmodal">
  29.  
  30.                    
  31.      
  32.                    
  33.                          
  34.                         <div class="form-group">
  35.                             <label class="col-sm-3 control-label" for="formGroup"></label>
  36.                             <div class="col-sm-8">
  37.                              
  38.                             <button type="submit" class="btn btn-success btn-lg"><span class="glyphicon glyphicon-floppy-saved"><a href="tables-datatable3.html"></span> Guardar</button>  
  39.                            
  40.                            
  41.                             <button type="button" class="btn btn-danger btn-lg"><span class="glyphicon glyphicon-remove-circle"></span> Cancelar</button>
  42.                              </div>
  43.      
  44.      
  45.                             </div>
  46.                           </div>
  47.      
  48.      
  49.      
  50.             </form>  
  51.                
  52.               </div>
  53.              
  54.               </div>
  55.             </div>
  56.          
  57.           </div>
  58.         </div>

y en el modal cuando le hago el click y muestra el modal , solo hay el boton de guardar y cancelar.
con f12 no muestra errores ni funciones
  #11 (permalink)  
Antiguo 28/10/2015, 06:28
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 9 años, 3 meses
Puntos: 3
Respuesta: Llamar a un archivo php por ajax

El botón tiene que ser así:

<button class="btn btn-primary" id="BOTONPARAABRIRMODAL">
<i class="entypo-plus">Autorizar Matrículas</i>
</button>
El script tiene que estar fuera del modal, abajo del botón:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $("#BOTONPARAABRIRMODAL").click(function(){
  3. $.ajax({
  4.   method: "POST", //Elige get o post
  5.   url: "contratos3.php",
  6.  
  7. })
  8.   .done(function( msg ) {
  9.    $("#mbody").html(msg);
  10.  $("#myModal2").show();
  11.   });
  12.  });
  13.  </script>
  #12 (permalink)  
Antiguo 28/10/2015, 06:59
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Llamar a un archivo php por ajax

OKKK!!! Ahora si solo que no hay que quitar las clases del boton porque si no se bloquea
<i class="entypo-plus" data-toggle="modal" data-target="#myModal2">Autorizar Matrículas</i>
y otros modals que tengo se quedan sin funcionar no se porque pero en resumen,MUCHAS GRACIAS por todo ,
Nos vemos por el foro!!!
  #13 (permalink)  
Antiguo 28/10/2015, 07:03
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Llamar a un archivo php por ajax

pOR CIERTO COMO VAS DE PHP ?? por que tengo un tema tambien bastante colgado:
http://www.forosdelweb.com/f18/hacer...login-1140583/

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:05.