我的PHP代码没有将值插入数据库

时间:2014-04-07 16:53:05

标签: javascript php jquery

我正在尝试创建一个代码来捕获某些表单中的数据并将其插入到Wamp服务器中的数据库中,但由于某种原因,它不起作用,即使我确信我做了很多照顾

以下是相关代码:

HTML

  <form id="frmLabs" method="post">
    <div class="divFormlabs">
      <label for="txtCapacidad">Capacidad</label>
      <input type="text" name="txtCapacidad" id="txtCapacidad">
      <label for ="txtCantEquipos">Carrera</label>

      <select type="text" name="txtCarrera" id="txtCarrera">
          <option value="Desarrollo">Desarrollo</option>
          <option value="Diseño">Diseño</option>
          <option value="Telematica">Telemática</option>
          <option value="T.I">T.I</option>
    </select>

    </div>

      <div class="divFormlabs">
      <label for="txtNumLab">Número de laboratorio</label>
      <input type="text" name="txtNumLab" id="txtNumLab">
      <label for="txtUbicacion">Ubicación</label>
      <input type="text" name="txtUbicacion" id="txtUbicacion">
    </div>
  </form>

的jQuery

$("#btnAceptar").click(function() {
  var idlab = $('#txtNumLab').val(),
  capacidad = $('#txtCapacidad').val(),
  carrera = $('txtCarrera').val(),
  ubicacion = $('txtUbicacion').val();


var request = $.ajax({
 url: "includes/functionsLabs.php",
 type: "post",
 data: {

    'call': 'addLab',
    'pIdLab':idlab,
    'pCapacidad':capacidad,
    'pCarrera':carrera,
    'pUbicacion':ubicacion},

     dataType: 'json',

     success: function(response){
        alert('exito');
    }
  });
});

PHP

function addLab(){
if(isset($_POST['pIdLab']) && 
    isset($_POST['pCapacidad']) &&
    isset($_POST['pCarrera']) &&
    isset ($_POST['pUbicacion'])){

    $idlab = $_POST['pIdLab'];
    $capacidad = $_POST['pCapacidad'];
    $carrera = $_POST['pCarrera'];
    $ubicacion = $_POST['pUbicacion'];

    $query = "INSERT INTO labs VALUES" . "('$idlab', '$capacidad','$carrera',
 '$ubicacion')";

    $result = do_query($query);


}

}


 if($_SERVER['REQUEST_METHOD']=="POST") {
$function = $_POST['call'];
if(function_exists($function)) {        
    call_user_func($function);
} else {
    echo 'Function doesnt exists!';
}
   }



?>

表格Labs中数据库中行的顺序正好是代码中的行:

IdLab Capacidad 卡雷拉 Ubicacion

另外请原谅我把变量放在另一个语言中但是它无法帮助&gt;。&lt;任何形式的帮助将不胜感激。

祝愿并提前感谢。

编辑:

这是btnAceptar的代码。

<input class="formatButton verInfo2"  type="button" value="Aceptar"   id="btnAceptar"onclick="window.location='labs.html';" />

2 个答案:

答案 0 :(得分:3)

您没有正确分配变量:

var idlab = $('#txtNumLab').val(),
  capacidad = $('#txtCapacidad').val(),
  carrera = $('txtCarrera').val(),
  ubicacion = $('txtUbicacion').val();

请注意,最后两个缺少选择器中的#,因此您的php文件中的if条件永远不会得到满足。

您可以使用以下方式替换分配数据的方式:

data: $('#frmLabs').serialize(),

编辑请注意,由于您遇到sql注入问题,如果其中一个字段包含例如'字符,则查询可能会失败。

答案 1 :(得分:1)

第一

$("#btnAceptar").click(function(e) {
e.preventDefault();
idlab = $('#txtNumLab').val(),
capacidad = $('#txtCapacidad').val(),
carrera = $('#txtCarrera').val(),
ubicacion = $('#txtUbicacion').val();


var request = $.ajax({
url: "includes/functionsLabs.php",
type: "post",
data: {
'call': 'addLab',
'pIdLab':idlab,
'pCapacidad':capacidad,
'pCarrera':carrera,
'pUbicacion':ubicacion},

 dataType: 'json',

 success: function(response){
    alert('exito');
   }
  });
});

然后在includes / functionsLabs.php:

print_r($_POST);

或:

echo $query;

退出onclick =“window.location ='labs.html';”你的btnAceptar:

建议使用firebug补充测试