2010-02-18 4 views
1

나는 양식을 가지고있다. 그것은 올바른 고객이 그 행에 대해 모든 것이 정상임을 보여줍니다. 그런 다음 아약스를 통해 양식을 게시하면 어쨌든 난해한 행의 ID를 게시합니다. 이것은 스크립트입니다JQuery와 아약스 게시 잘못된 데이터가

$("form#deletesubmit").submit(function() { 

    var delcustomerid = $('#delcustomerid').attr('value'); 
    $.ajax({ 
     type: "POST", 
     url: "delete/process.php", 
     data: "delcustomerid=" + delcustomerid, 
     success: refreshTable 
    }); 
    return false; 
}); 
}); 

그리고 마지막으로 여기에 양식을 게시 할 PHP입니다 :

<?php include("../../config/config.php"); ?> 
<?php   
    $deleteid = htmlspecialchars(trim($_POST['delcustomerid'])); 
    mysql_send("DELETE FROM customers where id='$deleteid'"); 
?> 

나는 아약스없이 테스트 한과 그것을 잘 작동합니다. 누락 된 것이 있어야합니다. 올바른 값을 게시하지 않습니다. 그것을 해결하려고 노력한 보낸다.

답변

4

를 원래 값을 당기는 attr('value')를 사용하여? 당신이 원하는하지 않을 수 있습니다 무엇을하는 대신 .val()를 사용 또한,이 설정이 좀 더 쉽게 전화 할 수 있습니다 당신의 PHP 출력이 있는지 확인,

$("form#deletesubmit").submit(function() { 
    var delcustomerid = $(this).find('#delcustomerid').val(); 
    $.post("delete/process.php", { delcustomerid: delcustomerid }, refreshTable); 
    return false; 
}); 

마지막으로. 생성 된 HTML 소스를보고 오른쪽 id을 입력하십시오.

또한 PHP :htmlspecialchars을 사용하여 mysql을 이스케이프 처리하지 마십시오. 이 정수로되어 있기 때문에, 당신은 단지 int를 사용할 수 있습니다

$deleteid = (int) trim($_POST['delcustomerid']); 
mysql_send("DELETE FROM customers where id='$deleteid'"); 

염두에 유지, (누군가가이 페이지로 deleteid[]=을 통과하는 경우) 배열 1로 평가 것. 따라서 테스트를 작성하거나 id = 1이 테이블에 남아 있지 않은지 확인하십시오.

+0

또한 "데이터"형식이 제대로 작동하지 않는다고 생각합니다. Doug이 포맷 한 방식은 올바른 방법입니다. {delcustomerid : delcustomerid} – Buggabill

+0

응답 해 주셔서 감사합니다. 코드를 추가하고 문제가 여전히 지속됩니다. 추가 된 경고 (delcustomerid); 아래에 게시 된 $ .ajax 이전에는 잘못된 값이 게시 전에 설정됩니다. – user272899

+0

하하, 무슨 일이 일어날 지 알 것 같아. 내 업데이트를 사용해보십시오 (JS 만 변경했지만 PHP는 변경하지 않았습니다). 단일 페이지에서 여러 가지 양식을 사용하고 있습니까? –

0

$ 아약스 ({과 같이 이전 코드에 경고를 넣어 :

alert(delcustomerid); 

이 게시물 이전 값 잘못된 권리가

+0

알림 (delcustomerid); 예, 게시물 앞에 값이 잘못되었습니다. 폼에 문제가 있다는 뜻입니까 ?? – user272899

2

방금 ​​.val() 메소드를 제안하려고했습니다. 아직 설치하지 않은 경우에는 방화범 메세지를 설치하십시오. 그것은 당신이 당신이 서버에 게시하고있는 것을 정확히 볼 수있게합니다.

+2

방화범을 언급하는 +1. 훌륭한 도구! –