2014-02-10 3 views
1

excel 파일에서 데이터를 검색하고 PHP 파일로 보내 데이터베이스에 있는지 확인하십시오. 그렇지 않으면 데이터가 잘못되었다는 것을 사용자에게 알립니다.데이터 확인 php/mysql/jquery

$(document).ready(function(){ 
    var code = $('.code').val() 
    jQuery.ajax({ 
     type: 'POST', 
     source:'autocomplete.php', 
     data: 'acc_code='+ code, 
     cache: false, 
     success: function(response){ 
      if(response > 0){ 
       alert(code); 
      } else { 
       $('.code').addClass('errorClass'); 
      } 
     } 
    }); 
}); 

function validate(){ 
    var code = $('.code').val() 
    jQuery.ajax({ 
     type: 'POST', 
     url: 'autocomplete.php', 
     data: 'acc_code='+ code, 
     cache: false, 
     success: function(response){ 
      if(response > 0){ 
       alert(code); 
      } else { 
       $('.code').addClass('errorClass'); 
      } 
     } 
    }); 
} 

PHP는

$q=$_GET['q']; 
$my_data=mysql_real_escape_string($q); 
$mysqli=mysqli_connect('localhost','root','03300130','mydb') or die("Database Error"); 
$sql="SELECT acc_code,acc_desc,acc_type FROM charts WHERE acc_code LIKE '%$my_data%' ORDER BY acc_code"; 
$result = mysqli_query($mysqli,$sql) or die(mysqli_error()); 
if($result) { 
    echo 1; 
} else { 
    echo 0; 
} 

그것은 반환 값은 WR은 HTML

<form name="trialInsert" id="trialInsert" action="trial_insert_excel.php" method="post"> 
<?php foreach($data as $row) { ?> 
<tr class="item-row"> 
<td><input type="text" name="acc_code[]" id="acc_code[]" class="code" onchange="validate();" value="<?php echo ($row['acc_code']); ?>"/></td> 
<td><input type="text" readonly name="int_code[]" id="int_code[]" value="<?php echo ($row['int_code']); ?>"/></td> 
<td><input type="text" readonly name="debit[]" id="debit[]" value="<?php echo ($row['debit']); ?>"/></td> 
<td><input type="text" readonly name="credit[]" id="credit[]" value="<?php echo($row['credit']); ?>"/></td> 
<td><input type="text" readonly name="debitOld[]" id="debitOld[]" value="<?php echo($row['debitOld']); ?>"/></td> 
<td><input type="text" readonly name="creditOld[]" id="creditOld[]" value="<?php echo($row['creditOld']); ?>"/></td> 
</tr> 
<?php } ?> 

jQuery를 외모처럼 텍스트 상자는 입력 된 데이터가 잘못되어 있더라도 항상 빨간색으로 변합니다.

+0

나는 이번에는 다루었지만 나중에 제출하기 전에 질문 미리보기를 확인하십시오. – George

+0

고마워, 난 여기 새거야 – Elias

답변

0

mysqli_*mysql_* 명령을 혼합합니다. mysql_real_escape_string()의 문서에서

인용 : 그것은 아마 false를 반환하기 전에

Returns the escaped string, or FALSE on error. 

당신은 mysql_connect() 전화를 가지고 있지 않기 때문에. var_dump($my_data);으로 확인할 수 있습니다.

대신 mysqli_real_escape_string()을 사용할 수 있습니다. 또는 준비된 문을 살펴 봐야합니다. 참고 : mysqli_real_escape_string()mysqli_connect() 호출 후에도 호출해야합니다.

+0

내가 자동 완성 예제와 동일한 명령을 사용하고 그것은 원하는 값을 반환하지만 여기에 내가 왜 그게 뭔지 모르겠다 – Elias

+0

$ q = $ _ 가져 오기 [ 'q']; \t $ mysqli = mysqli_connect ('localhost', 'root', '03300130', 'mydb') 또는 죽는 ("Database Error"); \t $ my_data = mysqli_real_escape_string ($ mysqli, $ q); \t $ sql = "SELECT acc_code, acc_desc, acc_type 어디에서 acc_code LIKE '% $ my_data %'ORDER BY acc_code"; \t $ result = mysqli_query ($ mysqli, $ sql) 또는 die (mysqli_error()); 당신이 제안한 조정했지만 여전히 아무것도 반환 값을 모르겠다, 나는 거짓, 사실, 0,1, null하지만 아무것도 비교하려고 시도 – Elias

+0

디버깅에'var_dump()'를 사용하십시오. –