2016-09-27 45 views
0

我試圖發佈一個表單給自我,它可以在禁用javascript的情況下工作,或者在啓用javascript的情況下與ajax一起工作。從ajax post到自我返回數據時遇到問題

下面的示例工作如果JavaScript被禁用,但我沒有得到任何response用ajax返回成功:

<?php 

if (isset($_POST['form'])) { 

    $return['msg'] = 'congrats. it was posted to self'; 

    if (isset($_POST['ajax'])) { 
    echo json_encode($return); 
    } 

} 

?> 

<script type="text/javascript"> 

$(document).ready(function() { 

$('#test-form').submit(function(e) { 

    var postTo = location.href; 

    var formData = $(this).serialize()+'&ajax=true'; 

    $.ajax({ 
    type: 'POST', 
    url: postTo, 
    data: formData, 
    dataType : 'json', 
    success: function(response) { 
     console.log(response); // Not getting anything here 
     $('#test-form-response').html(response.msg);   
    } 
    }); 

    e.preventDefault(); 

}); 

}); // End doc ready 

</script> 

<form id="test-form" method="post" class="validate"> 
    <input type="hidden" name="form" value="test"> 
    <input type="submit" id="submit-button" value="Submit"> 
</form> 

<div id="test-form-response"><?php if (isset($return['msg'])) { echo $return['msg']; } ?></div> 

回答

1

最主要的是這裏是當請求被阿賈克斯則呼應JSON後終止腳本數據

if (isset($_POST['ajax'])) { 
    echo json_encode($return); 
    exit; 
} 
+0

我只是試過了,它不起作用。 – JROB

+0

默認情況下會提交您的表單,請通過添加以下內容來阻止它:e.preventDefault();在你的jQuery表單提交功能 –

相關問題