2017-02-17 3 views
0

새로 고치지 않고 해당 기능을 수행하는 대신 php 스크립트를 계속로드하는 요청이 있습니다. 이 추측 있습니까 아래 아약스 스크립트Ajax 스크립트가 작동하지 않습니다.

HTML

<form action='connect_exec.php' method='post' id='connect_form' enctype='multipart/form-data'> 
    <input type='text' name='conn_id' id='conn_id' value='$ad_id'> 
    <input type='submit' name='connect' class='conn_text' id='connect' value='connect +'> 
</form> 

Ajax 요청

$('#connect_form').submit(function(e) { 
    e.preventDefault(); 
    var ad_id = $('#conn_id').val(); 
    $.ajax({ 
     type: "POST", 
     url: "connect_exec.php", 
     data: ad_id 
    }).done(function(response) { 
     console.log(response); 
    }).fail(function(data) { 
     console.log(data); 
    }); 
}); 

PHP 스크립트

require_once("db.php"); 
$db = new MyDB(); 
session_start(); 
if (isset($_POST['connect'])) { 
    $my_id = $_SESSION['log_id']; 
    $ad_id = $_POST['conn_id']; 
    $rand_num = rand(); 
    $hsql = <<<EOF 
    SELECT COUNT(hash) as count FROM connect WHERE(user_one = '$my_id' 
     AND user_two = '$ad_id') OR(user_one = '$ad_id' 
     AND user_two = '$my_id'); 
    EOF; 
    $hret = $db->querySingle($hsql); 
    if ($hret == 1) { 
     $response = "Your are already connected to '$ad_id'"; 
    } else { 
     $csql = <<<EOF 
     INSERT INTO connect(user_one, user_two, hash) VALUES('$my_id', '$ad_id', '$rand_num'); 
     EOF; 
     $cret = $db - > exec($csql); 
     if (!$cret) { 
      echo "Error connecting to '$ad_id'"; 
     } else { 
      echo "Successful"; 
     } 
    } 
} 
잘못 아무것도 내 ajax의 문제입니다

양식은 페이지를 새로 고치지 않고 실행하지만 실행하지는 않습니다. ajax의 문제는 무엇인가요?

+0

당신이 콘솔에 오류가 있습니까? –

+0

콘솔에서 서버 측 echo 문을 모니터하고 실행이 끊긴 곳과 시간이 걸리는 곳 등에서 Ajax 호출을 디버그하십시오. –

+0

전혀 아닙니다. 제출을 클릭하면'form action PHP file'이로드됩니다. –

답변

1

serialize() 방법을 사용하여 양식 data을 일련 번호로 보내실 것을 권장합니다.

또한, form에 대한 submit 이벤트를 사용 : $('form').on('submit', function (e) {}

$('form').on('submit', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "connect_exec.php", 
     data: $('form').serialize() 
    }).done(function(response) { 
     console.log(response); 
    }).fail(function(data) { 
     console.log(data); 
    }); 
}); 
+0

여전히 작동하지 않음 –

0

$('#connect').click(function(e) { 
 
     e.preventDefault(); 
 
     var ad_id = $('#conn_id').val(); 
 
     console.log(ad_id); 
 

 
     $.ajax({ 
 
      type: "POST", 
 
      url: "connect_exec.php", 
 
      data: ad_id 
 
     }) 
 
     .done(function (response) { 
 
      console.log(response); 
 
     }) 
 
     .fail(function (data) { 
 
      console.log(data); 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action='connect_exec.php' method='post' id='connect_form' enctype='multipart/form-data'> 
 
     <input type='text' name='conn_id' id='conn_id' /> 
 
     <input onclick="return;" type='submit' name='connect' class='conn_text' id='connect' value='connect +'> 
 
     </form>

관련 문제