我正在尝试创建一个代码来捕获某些表单中的数据并将其插入到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';" />
答案 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补充测试