2013-11-17 1 views
-2

По какой-то причине Im, получить <br/> тег из ниоткуда в моем ответе от функции PHP ...Ajax/PHP ответ добавления нежелательных бр тег

Вот Аякса:

var paid_value = 'Paid'; 

$.ajax({ 
    url: 'http://localhost/myshop/owe_money/add_paid.php', 
    type: 'post', 
    data: { paid_value:paid_value } ,  
    beforeSend: function() { 
     $("#ajax-result").html('Before'); 
    }, 

    success: function(data) { 

     $("#ajax-result").html(data); 
     $('input[name="mark_as_paid"]').val(data); 

    }, 
    error: function(xhr, ajaxOptions, thrownError) { 
     $("#ajax-result").html('Error'); 
    } 
}); 

И PHP :

function add_paid() { 
    include('../db_connect.php'); 

    $paid_value = $_POST['paid_value']; 

    if (is_numeric($paid_value)) { 
     $sql = "UPDATE paid SET first_item = $paid_value"; 
    } else { 
     $sql = "UPDATE paid SET first_item = '".$paid_value."'";    
    } 

    if (mysqli_query($connect, $sql)) { 
     echo $paid_value; 
    } else { 
     echo "Unsuccesful".mysqli_error($connect); 
    } 

    die; 
} 

add_paid(); 

Мой ответ должен просто сказать "Paid", но вместо этого говорит "<br /> Paid".

+1

Проверьте содержимое ответа сервера (вкладка «Сетевая панель Firebug» поможет). Нет очевидного места, из которого это происходит, так что проверьте свой HTML. –

+0

То, что сказал @MikeW. В chrome вы также можете использовать вкладку в сети, открыть ее, а затем сделать запрос ajax, и он появится здесь. Нажмите на него, а затем проверьте ответ, чтобы увидеть, есть ли тег BR. Я предполагаю, что это не сервер. –

+0

Я проверил вкладку сети, и
тоже находится в ответе – Adrian

ответ

0

на первый взгляд, он выглядит здорово. Вероятно, вы обнаружите, что бр идет куда-то еще. Может быть, это уже в файле?

Если найти это путь в переменной $ _POST, вы можете временно взломать вопрос использования

$paid_value = strip_tags($_POST['paid_value]); 

Этот ответ приходит без гарантии вообще!

+0

Спасибо, но это не исправить, я полагал, что это не так, как я проверил БД и не было добавлено никаких тегов в поле. Кажется, что тег генерируется из ответа ajax. – Adrian

0

В коде JQuery, изменить success блок:

success: function(data) { 
       $("#ajax-result").html(data); 
       $('input[name="mark_as_paid"]').val(data); 
       console.log(data) 
      }, 

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

Я не вижу никаких проблем с кодом, поэтому я думаю, что он имеет отношение к форме/вводу, где вы показываете результат - вы не включили это.

+0

Спасибо, когда я попробую это, его по-прежнему отображает
Adrian

+0

Просто для подтверждения - вы видите тег разрыва строки в консоли отладки? –

+0

Да, я проверил таблицу, и нет разрыва, нет тегов
в моем коде в любом месте, похоже, создается с ответом ajax. – Adrian

Смежные вопросы