2013-11-08 3 views
0

Я пытаюсь сделать простой вызов ajax, чтобы проверить, подключен ли я к файлу php. Я пытался сделать db_connect, но когда это ничего не вернуло, я отключил его пустой php-файл с простым эхом. Тем не менее, alert() в моей функции ajax возвращает всю PHP-страницу. Я видел вопрос с тем же вопросом, HOWEVER, мой php не содержит html. Поэтому это решение не будет работать Любые предложения о том, где я неправильно было бы весьма признателенAjax call not return only "data:

Вот JQuery:..

$(function(){ 
    var request6 = $.ajax({ 
     url: "indexDb.php", 
     async: true, 
     type: "POST", 
     data: {func: 2}, 
     dataType: "html" 
    }).success(function(data) { 
     alert(data); 
    })//end success 
}); 

PHP:

<? 
$value = $_POST['func']; 

switch($value){  
    case 2: 
     echo "made it"; 
     break;   
} 
?> 
+0

Итак, первое: 'success' должно быть' done'. 'success' является опцией ajax, а' done' является функцией обещания. Однако я не думаю, что это объясняет все ваши проблемы. –

+0

@gotguts check my soluion –

+0

Похоже, у вас есть short_open_tags, установленный в «Off» в вашем файле php.ini. –

ответ

1

попробовать что-то вроде этого изменения

? to? php

<?php 
$value = $_POST['func']; 

switch($value){ 
    case 2: 
     echo "made it"; 
     break; 
} 
?> 

Короткие теги отключены по умолчанию.

Однако, чтобы включить короткие теги, установите параметр short_open_tag в файле php.ini.

+0

Почему -1 первый чек и нижний уровень –

+0

его работающий на меня –

+0

Как ни странно, на самом деле это был ответ. Я не знаю, почему это так, потому что раньше у меня не было проблем с этим. Благодарю. – gotguts

0

dataType: "html" defaults возвращает все тело ответа, если URL-адрес не указан. Учитывая, что вы говорите, что это поведение не поведение, которое вы хотели, я предполагаю, что ваш php-файл возвращает какую-то строку JSON. Если это верно, то изменение dataType в json позволит сценарию использовать выход PHP независимо от типа содержимого ответа сервлета:

$(function(){ 
    var request6 = $.ajax({ 
     url: "indexDb.php", 
     async: true, 
     type: "POST", 
     data: {func: 2}, 
     dataType: "json" 
    }).done(function(data) { 
     alert(data); 
    })//end success 
}); 
0

Пожалуйста, попробуйте с

$.ajax({ 
      type:"POST", 
      url:"indexDb.php", 
      dataType:"html", 
      data:{func: 2}, 
      cache:false, 
      success:function(data) 
      { 
       alert(data); 
      } 
     }); 
0

Попробуйте изменить тип данных: " html "в dataType:" text ". Надеюсь, это поможет.