Pasar valores hidden de un formulario a ajax

estoy tratando de pasar los valores de varios input a una función en ajax, pero esta no los recoge.

<input type="hidden" name="rooms" value="<?php echo $room ?>">
<input type="hidden" name="destination" value="<?php echo $id_destination ?>">
<input type="hidden" name="hotel" value="<?php echo $id_hotel ?>">
<input type="hidden" name="codigo" value="<?php echo $id_codigo ?>">
function enviarDatosEmpleado(){
    //recogemos los valores de los inputs
    email=document.cliente.email.value;
    idrooms=document.cliente.rooms.val;
    iddestination=document.cliente.destination.val;
    idhotel=document.cliente.hotel.val;
    idcodigo=document.cliente.codigo.val;
}

Y si cambio los hidden en los input por text, sí los recibe.

-1
задан 06.12.2016, 05:07
2 ответа

С одной стороны есть ошибка синтаксиса в, как ты возвращаешь стоимость hidden. Ты используешь ".val" вместо ".value". Из-за другого, чтобы отказываться от других проблем, я рекомендую тебе снабжать ссылками элементы с ids/clases вместо по именам.

<input type="hidden" name="rooms" id="rooms" value="<?php echo $room ?>">
<input type="hidden" name="destination" id="destination" value="<?php echo $id_destination ?>">
<input type="hidden" name="hotel" id="hotel" value="<?php echo $id_hotel ?>">
<input type="hidden" name="codigo" id="codigo" value="<?php echo $id_codigo ?>">

function enviarDatosEmpleado(){
    //recogemos los valores de los inputs
    email=document.cliente.email.value;
    idrooms=document.getElementById("rooms").value;
    iddestination=document.getElementById("destination").value;
    idhotel=document.getElementById("hotel").value;
    idcodigo=document.getElementById("codigo").value;
}
0
ответ дан 24.11.2019, 12:15
  • 1
    Спасибо друг, уже funcionó! –  Jesus 17.12.2016, 00:07
  • 2
    Я радуюсь тому, что оно функционировало, пожалуйста, охарактеризуй ответ как правильная. –  Max Dominguez 19.12.2016, 18:00

Archivo.Html

<form name="tuform" onsubmit="insert_empleado(); return false" >
<input type="hidden" name="rooms" id="rooms" value="<?php echo $room ?>">
<input type="hidden" name="destination" id="destination" value="<?php echo $id_destination ?>">
 </form>

Ajax.js

function objetoAjax(){
            var xmlhttp=false;
            try {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {

            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
              xmlhttp = new XMLHttpRequest();
            }
            return xmlhttp;
        }

        function insert_empleado(){
              rooms=document.tuform.rooms.value;
              destination=document.tuform.destination.value;
              ajax=objetoAjax();
              ajax.open("POST", "tuarchivo.php",true);
              ajax.onreadystatechange=function() {
                    if (ajax.readyState==4) {
                        swal("Dato Agregado", "Correcto", "success")
                    }
             }
                ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                ajax.send("rooms="+rooms+"&destination="+destination)
        }

tuarchivo.php

<?php 
include("../php/conexion.php");
//posts
$rooms=$_POST['rooms'];
$destination=$_POST['destination'];
$orden=mysqli_query($conexion,"update tutabla set rooms="$rooms"where id='$id'");
?>
0
ответ дан 24.11.2019, 12:15
  • 1
    Большое спасибо :) уже я смог решать это –  Jesus 17.12.2016, 00:07