2014-05-13 6 views
0

Я представляю форму, используя ajax. Затем он обрабатывается в PHP, а в response я возвращаю весь код PHP/HTML. Каков правильный метод отправки «ответа» в качестве переменных из PHP?Как отправить «ответ» на представленную форму Ajax?

Мой JS

$.ajax({ 
    url: 'index.php', 
    type: 'post', 
    data: { 
     "myInput" : $('#myInput').val(), 
    }, 
    success: function(response) { 
     if(!alert(response)) { 
     // do something 
     } 
    } 
}); 

и мой PHP просто принимает значение Отвечали Input и манипулирует его:

if (isset($_POST["myInput"])) { 
    // doing something - and I want to send something back 
} 
+1

Если вы получаете доступ к файлу PHP через его URL-адрес (а не через AJAX), он все еще показывает источник? Ваша PHP-среда может быть неконфигурирована. –

+1

В моем файле index.php отображается сама форма, а не исходный код. Форма представляется себе, и все это хорошо. ответ просто показывает мне весь исходный код –

ответ

1

Только эхо и выход:

if (isset($_POST["myInput"])) 
{ 
    // doing something - and I want to send something back 
    exit('Success'); 
} 

Тогда в ваших JS:

success: function(response) { 
    if (response == 'Success') { 
     // do something? 
    } 
} 

Например:

test.phpодна страница HTML + PHP запись обработчика

<?php 

// Post Handler 
if (count($_POST)) 
{ 
    // do something with posted data 
    echo "You Posted: \r\n"; 
    print_r($_POST); 
    exit(); 
} 

// dummy data outside of the post handler, which will never be sent in response 
echo "Test Page"; 

?> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function() 
{ 
    $.post('test.php', { "hello": "world" }, function(result) { 
     alert(result); 
    }); 
}); 

</script> 

Выходы:

enter image description here

+1

Thats the problem - я вижу материал 'echo', а затем под ним весь исходный код страницы. –

+1

Работал как шарм. Я не уверен, почему ответ показал весь исходный код после всего. Я просто добавил 'exit (" ... ")' в конце вызова PHP. –

+0

Да ... как я уже упоминал об ответе другого человека (который теперь удален); если вы не добавляете exit, весь вывод скрипта отправляется в ответ ajax. – Latheesan

0
$.ajax({ 
    url: 'index.php', // change your url or give conditional statement to print needed code 
    type: 'post', 
    data: { 
     "myInput" : $('#myInput').val(), 
    }, 
    success: function(response) { 
     if(!alert(response)) { 
     // do something 
     } 
    } 
}); 
Смежные вопросы