表单不会发送由Ajax生成的元素后变量

时间:2015-11-26 22:48:48

标签: javascript php html ajax variables

我有以下麻烦。

我有一个表单,其中一些元素是由ajax生成的,因为我有一个选择使用从服务器获取的不同选项,取决于选择我使用ajax一些文本输入的选项。问题是当我尝试将数据发送到php文件进行处理时,文本输入中的post varibles不存在,而另一个没有dinamically元素没有任何问题。

这是我的表格

    <form role="form" action="scripts/agregaPeticion.php" method="POST">
                  <div class="form-group">
                    <label for="sala">Sala que se quiere pedir</label>
                    <br>
                     <select id="ComboSalas" name="Salas" width="30">
                        <option value="-1" selected> Elige la Sala que deeseas</option>
                     <?php 
                        for ($i=0; $i < $num; $i++) { 
                              $row = $result->fetch_assoc();
                            echo "<option value='".$row['idSala']."'>".$row['nombreSala']."</option>";
                        }
                     ?>
                    </select>
                  </div>
                  <div class="form-group">
                    <label for="fechaI">Fecha Inicio: </label>
                    <input  required id="datepicker" name="fechaInicio" />
                    <label for="fechaT">Fecha Termino: </label>
                    <input required id="datepicker2" name="fechaFinal"/>


                  </div>

                  <div id="hourpicker" class="form-group">
                  <label for="fechaInicio">Hora de inicio del evento</label>
                    <input  required type="text" id="hora_inicio" name="horaInicio" placeholder="Ejemplo: 12:00 pm" onkeypress="valida_hora(value)">
                    <br><br>
                     <label for="fechaInicio">Hora de termino del evento</label>
                    <input  required type="text" id="hora_inicio" name="horaTermino" placeholder="Ejemplo: 1:00 pm" onkeypress="valida_hora(value)"> 




                  </div>
                  <div class="form-group">
                    <label for="nombreEvento">Nombre del evento que se realizará:</label>
                    <input type="text" cols="45" required name="nombreEvento">
                    <label for="descripcionEvento">Breve descripcion del evento que se realizará:</label>
                    <textarea cols="45" rows="8" name="descripcionEvento"></textarea> 
                  </div>

                  <div class="form-group">
                  <p>Cuáles son las opciones que ocupará en su evento?</p>
                   <input type="checkbox" name="clima" value="Bike">Aire Acondicionado
                    <br>
                    <input type="checkbox" name="internet" value="Car"> Acceso a internet
                    <br>
                    <input type="checkbox" name="proyector" value="Car"> Uso de proyector
                  </div>
                  <div id="ranges">
                        <!-- Implementacion de AJAX para los rangos automaticos--> 

                   </div>
                 <button  type="submit" class="btn btn-primary btn-lg btn-block" id="enviar" onclick="enviarDatos();">SOLICITAR </button>

                </form>

输入文字将插入&#34; <!-- Implementacion de AJAX para los rangos automaticos-->&#34;

输入文本很好并且工作问题是当我尝试从de post varible中获取它们的值时,因为没有任何东西。

这是我的ajax代码

//CONSTANTES
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOAED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;
//VARIABLES
var combo;
var peticionHttp;

//FUNCIONES

 function inicializarAjax(){
   if(window.XMLHttpRequest){
    return new XMLHttpRequest();
 }else if(window.ActiveXObject){
    return  new ActiveXObject("Microsoft.XMLHTTP");
 }
 }

function mostrarContenido(){

if(peticionHttp.readyState==READY_STATE_COMPLETE){
    if(peticionHttp.status=200){
             document.getElementById("ranges").innerHTML=peticionHttp.responseText;
     }else{
         alert("hubo problemas con la petición");
     }
 }

 }

function cambioSala(){
 combo=document.getElementById("ComboSalas").value;
 var sala=combo;

 if(sala==-1){
        //NO HA SELECCIONADO NINGUNA SALA
     document.getElementById("ranges").innerHTML="";
 }else{
 var url="http://localhost/GestionDeSalas/rangos.php?q="+sala;
 if(peticionHttp){
     peticionHttp.open("GET",url,true);
     peticionHttp.onreadystatechange=mostrarContenido;
     peticionHttp.send();

     }
  }

}
 function enviarDatos(){
 var s=document.getElementsByName("sillas");
 alert(s[0].value);
}

function cargarTodo(){

 peticionHttp=inicializarAjax();
 peticionHttp.overrideMimeType('text/xml');
 document.getElementById("ComboSalas").onchange=cambioSala;





}

 window.onload=cargarTodo;

这是ajax

所需的文件
<?php
$q = intval($_GET['q']);

 require "scripts/conecta.php";

 mysqli_select_db($con,"ControlSalas");
 $sql="SELECT numSillas,numMesas,numPersonas FROM Sala WHERE idSala = '".$q."'";
$result = mysqli_query($con,$sql);


$row = mysqli_fetch_array($result);
                echo '<div class="form-group">';
                echo '<label for="NumSillas">Numero de sillas solicitadas para el evento</label>';
                echo '<input type="range" name="points" max="'.$row['numSillas'].'" min="0" onchange="updateTextInput(this.value);" value="0">';
                echo '<input type="text" id="textInput" value="0" readonly disabled name="sillas">';
                echo '</div>';
                echo '<div class="form-group">';
                echo '<label for="NumMesas">Numero de mesas solicitadas para el evento</label>';
                echo '<input type="range" name="points" min="0" max="'.$row['numMesas'].'" onchange="updateTextInputM(this.value);" value="0">';
                echo '<input type="text" id="textInputM" value="0" readonly disabled name="mesas">';
                echo '</div>';
                echo '<div class="form-group">';
                echo '<label for="NumPersonas">Numero de personas aproximada que asistirán al evento</label>';
                echo '<input type="range" name="points" min="0" max="'.$row['numPersonas'].'" onchange="updateTextInputP(this.value);" value="0">';
                echo '<input type="text" id="textInputP" value="0" readonly disabled name="personas">';
                echo '</div>';



mysqli_close($con);
?>

0 个答案:

没有答案