Foro

Home Forums Programación Php No llegan variables a PHP

This topic contains 8 replies, has 6 voices, and was last updated by  maykeltrejo 1 año, 9 meses .

Viendo 9 respuestas - de la 1 a 9 (de 9 en total)
  • No llegan variables a PHP

    Intervenciones
  • gerarifes 
    Participant

    Llevo ya como una semana, dando vueltas a esto y no encuentro una respuesta, hago una llamada Ajax POST en la que envio datos a una pagina PHP, el caso es que la petición llega y si hago un echo me responde, pero las variables que envio o no llegan o llegan vacias.
    En el xml tengo

    <gap:plugin name=”cordova-plugin-whitelist” source=”npm” />
    <access origin=”*”/>

     Code: llamada ajax (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25.
    26.
    27.
    28.
    29.
    30.
    31.
    32.
    33.
    34.
    35.
    36.
    37.
    38.

    function enviarDatos(){

            var al = $("#alto").val();
      var an = $("#ancho").val();
      var lar = $("#largo").val();
      var des = $("#descripcion").val();
      
    dataString=("alto="+al+"&ancho="+an+"&lar="+lar+"&des="+des);
      
            $.ajax({
                type: "POST",
                url: "http://miweb.com/prueba.php",
                data: dataString,
                success: function(data) {
            if(data=="error"){
                    
              alert("data");
                  
            }
            else{
              alert(data);
                
              
            }
                }
         });

    }
    [code title="prueba.php"]
    header("Access-Control-Allow-Origin", "*");


    $alto=$_POST['alto'];
    $ancho=$_POST['ancho'];
    $largo=$_POST['largo'];
    $descripcion=$_POST['descripcion'];

    echo "ancho=".$ancho;

    [code]

    • This topic was modified 4 años by  gerarifes.

    • This topic was modified 4 años by  gerarifes.
    gerarifes 
    Participant

    Perdón se me olvido cerrar el code, evidentemente el php va fuera de la app


    Morales Yerson 
    Participant

    Hola, prueba a enviarlos de la siguiente manera:

    function enviarDatos(){

    var al = $(“#alto”).val();
    var an = $(“#ancho”).val();
    var lar = $(“#largo”).val();
    var des = $(“#descripcion”).val();

    dataString = {“alto”: al,
    “ancho”: an,
    “lar”: lar,
    “des”: des};

    $.ajax({
    type: “POST”,
    url: “http://miweb.com/prueba.php”,
    data: dataString,
    success: function(data) {
    if(data==”error”){
    alert(“data”);
    }
    else{
    alert(data);
    }
    }
    });
    }

    En PHP recibes los datos con el nombre que les asignaste, en este caso sería:

    $alto = $_POST["alto"];
    $ancho = $_POST["ancho"];
    $largo = $_POST["lar"];
    $descripcion = $_POST["des"];

    De esa manera obtienes en PHP los datos que envías. Espero te sea de ayuda.


    gerarifes 
    Participant

    Si ya lo he probado de esa forma y un montón de ellas mas. Pero sigue sin funcionar.
    El problema es que no recibe las variables.
    Si alguien tiene una solución lo agradecería.


    Emanuel Martinez 
    Participant

    Debuggea primero en JS si toma el valor correcto de los campos (#alto, ancho, largo, desc).
    Si el valor lo toma bien intenta pasando las variables asi

     Code: arbitrary (select
    1.
    2.

    data : {alto: al, ancho: an, largo: lar, descripcion: des},
    success: function() {}...


    suarez9ster 
    Participant

    Pudiste resolver el problemita que tienes? Yo tengo uno similar y no consigo solucionar pero parece que es cors (access-control-allow-origin)


    gerarifes 
    Participant

    Si al final lo consegui te envio como:

     Code: peticion ajax (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.

    var al = $("#alto").val();
      var an = $("#ancho").val();
      var lar = $("#largo").val();

            $.ajax({
                type: "POST",
                url: "http://midominio/prueba.php",
                data: ({alto: al, ancho: an, largo: lar}),
                cache: false,
                dataType: "text",
          success: function(data) {
                     alert(data);
                }
            });

    y en la cebecera de el php tuve que incluir esto por que sino no funcionaba

     Code: peticion ajax (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.

    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Headers: Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With');
    header('Access-Control-Allow-Methods: GET, PUT, POST');

    $ancho = $_POST['ancho'];
    $alto = $_POST['alto'];
    $largo = $_POST['largo'];


    Jose Jesus Perez Rivas
    Jose Jesus Perez Rivas 
    Keymaster

    @gerarifes Gracias por publicar la solución, así otros usuarios pueden obtener ayuda de tu hilo :)

    Por otro lado en tu JS no haría falta generar variables por cada input, yo las pondría directamente en la data:

     Code: arbitrary (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.

    $.ajax({
                type: "POST",
                url: "http://midominio/prueba.php",
                data: ({alto: $("#alto").val(), ancho: $("#ancho").val(), largo: $("#largo").val()}),
                cache: false,
                dataType: "text",
                success: function(data) {
                     alert(data);
                }
            });

    Por otro lado comentarte que para php, puedes usar Slim Framework que te ayuda con las rutas y accesos a servidores. Es una buena herramienta para crearte apis en php ;)

    Saludos!


    maykeltrejo 
    Participant

    Yo tengo el mismo problemas, intente aplicar eso mismo que dijiste que dio resultado pero en mi caso no resulto, realmente no entiendo el motivo del porque los datos no llegan al php.


Viendo 9 respuestas - de la 1 a 9 (de 9 en total)

You must be logged in to reply to this topic.

RT @PhoneGapBuild: Apache Cordova CLI-9.0.0 has been added to PhoneGap Build! This version uses Android 9.0 (API level 28) by default Re…09:41 AM Feb 19th