2015-08-18 2 views
1

У меня этот код в моей функции JS, мне нужно вызвать PHP-файл «valiadte-attrib-form.php», этот скрипт PHP возвращает переменную. Это мой HTML-страница:

<form method="post" id="form1" name="form1" action="<?php echo $editFormAction; ?>"> 

<script> 
    $(function() { 
    $('#form1').submit(function() { 
     return validateForm(); 
    }); 
    }); 
</script> 

Это мой JS код:

function validateForm() { 
    var form = $("#form1"); 
    $.ajax({ 
     context: form, 
     type: 'GET', 
     url: 'validate-attrib-form.php', 
     data: params, 
     success: function(response){ 
      alert(response); 
      result=response; 
      return result; 
     }.bind(form) 
    }); 

Это мой PHP код:

<?php 
    echo "false"; 

Но моя проблема в том, когда я вижу предупреждение (ответ); я вижу полный HTML codelike это:

<!doctype html> 
<html lang="es"> 
<head> 
    <meta charset="iso-8859-1"/> 
    <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"/> 
..... 
..... 

Что случилось в моем коде? Мне нужно, чтобы alert (response)false не HTML-код. Спасибо за помощь!

+0

Похоже, вы попадаете на страницу 404 или другую страницу с ошибкой, с которой вы перенаправлены через ваш PHP-код. Попробуйте попасть в php-файл в браузере и посмотреть, что вы печатаете на экране. –

+0

В чем заключается ваша переменная '$ editFormAction'? – blzn

ответ

0

Вы получаете ошибку сервера, такую ​​как ошибка 400 или 500. Иногда, в зависимости от того, как настроен сервер, это может выглядеть как перенаправление, после чего вы можете увидеть полный HTML-код страницы без каких-либо кодов ошибок, таких как главная страница сайта, если перенаправления выполняются для подавления ошибок конечным пользователям.

Я также немного смущен в структуре вашего звонка $.ajax. Вы можете изменить его на следующее:

function validateForm() { 
    var form = $("#form1"); 
    $.ajax({ 
     /* context: form, //not sure you need that */ 
     type: 'GET', 
     url: 'validate-attrib-form.php', 
     data: form.serializeArray(), /* turn the form data into an array */ 
     dataType: "text", 
     success: function(response){ 
      alert(response); 
      /* do other stuff... */ 
     } 
    }); 
} 

$("#form1").on("submit", function(ev) { 
    ev.preventDefault(); 
    validateForm(); 
}; 

Вам не нужно указать атрибут формы action, если вы пытаетесь сделать вызов AJAX для конечной точки.