2014-04-07 3 views
1

어떤 형식의 데이터를 캡처하여 Wamp 서버의 데이터베이스에 삽입하는 코드를 만들려고하지만 어떤 이유로 그것이 작동하지 않습니다 나는 많은 관심을 가지고 그것을했다고 확신한다. 여기 내 PHP 코드가 데이터베이스에 값을 삽입하고 있지 않습니다.

는 관련 코드입니다 :

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!'; 
} 
    } 



?> 

테이블 연구소 내 데이터베이스에서 행의 순서 정확히 켜져있다. 코드에서 E :

IdLab Capacidad 카레라 Ubicacion

또한> 다른 languaje의 변수를 넣어 저를 용서하지만 도움이 될 수 없습니다 바랍니다. < 어떤 종류의 도움이라도 대단히 감사하겠습니다.

미리 감사드립니다.

편집 :

이 btnAceptar 코드입니다.

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

'$ 함수 = $ _POST [ '전화']; if (function_exists ($ function)) {call_user_func ($ function);'보안 구멍 .....매우 불쾌한 사람들이 심각한 피해를 야기 할 수 있습니다. –

+0

먼저,'$ query'를 출력하여 문제가 없는지 확인하십시오. 수동으로 실행하려고하면 어떤 일이 벌어지고 있는지 알게 될 것이고 적어도 솔루션에 가까워 질 것입니다. –

+0

이며 쿼리도 안전하지 않습니다. $ _POST에 데이터가 포함되어 있는지 확인 했습니까 (예 :'var_dump ($ _ POST);') 그리고 쿼리 오류가 있는지 확인하십시오 –

답변

3

당신은 올바르게 변수를 할당되지 않은 : 당신의 PHP 파일에 if 조건이 충족되지 않습니다 그래서 마지막 두, 선택기에서 # 누락되어

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

참고.

당신은 당신이 당신의 데이터를 할당하는 방법을 대체 할 수

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

편집 : 필드 중 하나가 예를 들어 A에 대한이 포함 된 경우 때문에 당신이 가지고있는 SQL 주입 문제, 쿼리가 실패 할 수 있음을' 문자.

+0

오, 이런 ... 나는 그렇게 빨리 고치고 다시 너와 함께 할 것이다. –

+0

Wamp 서버가 phpMyAdmin을 성공적으로 실행하지 않고 계속로드되므로 잠시 시간이 걸릴 수 있습니다. –

+0

#가 해결되었지만 아직 작동하지 않습니다. 그리고 당신은 다음과 같은 뜻입니까 : data : $ ('# frmLabs'). serialize(), 각 필드마다 하나씩? –

1

첫째 :

print_r($_POST); 

나 :

echo $query; 

와의 onclick = "에서는 window.location을 종료 = 'labs.html

$("#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'); 
    } 
    }); 
}); 

그런 다음에는/functionsLabs.php을 포함 '; " 당신의 btnAceptar :

테스트를위한 권장 사용 불을 지르고 보완

관련 문제