entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

envio de datos al servidor con ajax con el metodo get

en mi anterior pregunta no fue claro lo suficiente por este motivo vengo a replantearlo, lo que debe hacer mi script es poder enviar los datos al servidor por el metodo get y recuperarlo con mi otro script php, el funcionamento es parecido a un formulario corriente con html despues que se hace el submit estos datos viajan al servidor y pueden ser recuperados por medio de su atributo name, en mi caso debe mandar los datos de un evento, esto se debe porque tengo una lista de elementos, cuando hago click en uno de ellos obtengo el elemento y el texto que contiene, este texto se guarda en una variable que debe ser enviada al servidor por medio de ajax, hasta ahora se que para hacer envio de datos con get es suficiente pasar el archivo que lo va procesar concatenado con una cadena esto se veria de la siguiente manera script.php?=variable, para hacerlo con post se deberia de poner antes las cabezeras y algo mas que no entendi bien.
la salida de mi codigo es un error desconocido para mi

<html>
<nav id="menu-vertical">

    <ul id="items-links">
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
    </ul>
 </nav>
 <div id="seccion-datos"></div>

 <script type="text/javascript">

    ajax = new XMLHttpRequest();

    links = document.getElementById("items-links");
    links.addEventListener("click", function(e){

        consulta = e.target.innerText;

        ajax.open("get", "sistema.php?=consulta", true);
ajax.setRequestHeader("contentType", "application/x-www-form-urlencoded");
ajax.send(consulta);

        ajax.onreadystatechange=function() {  
         if (ajax.readyState==4 && ajax.status==200) {
          texto=ajax.responseText;
          seccionDatos.innerHTML= texto;

          } 
       }
    }, false)

seccionDatos = document.getElementById('seccion-datos');
<?php 
$peticion = $_GET['consulta'];

echo $peticion;

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola @steven,

por favor, no preguntes la misma cosa 2 veces. Ni 3, ni 4.

No preguntes la misma cosa más de una vez.

Si avanzaste por tu cuenta de una pregunta anterior, borrá la pregunta original así no queda la versión de la que ya sabés la respuesta, o editala para ampliarla.

Este código que estás usando para el envío AJAX es erróneo, pero 2 preguntas atrás tenés el código correcto. Acá estás haciendo el SEND antes del OPEN, y primero se hace OPEN y después SEND.

Gracias.

1voto

steven comentado

hola @Leonardo-Tadei volvi hacer la misma pregunta porque tu me sugeriste de ser mas especifico en mi pregunta anterior, almenos eso fue lo que entendi.
respecto al codigo acabo de corregirlo y obtengo otro error en consola

Uncaught DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.

0voto

Leonardo-Tadei comentado

Perdón si me expliqué mal en mi respuesta anterior: lo que te decía es que en tu respuesta a mi pregunta estabas haciendo _otrapregunta y que esta otra pregunta la hagas aparte.

Acá en vez de hacer otra pregunta repetís la misma, pero con código peor que el de hace unos días!

Respecto del error, ahora que pusiste el send() después del open() es que el setRequestHeader() va después del open() y no antes...

0voto

steven comentado

ok concentremonos en esta pregunta y dejemos de lado la otra, al momento ya no recibo ningun error en consola, pero todavia no llega el dato a mi script php
este me dice que la variable no existe, creo que algo anda mal en mi consulta ajax

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta