2015-10-21 3 views
0

В changename.php У меня есть этот DIV:Jquery AJAX работает, но отображается сообщение прослушивается

<div id="resultDiv"></div> 

В том же файле у меня есть код PHP:

<?php 

include_once ('connect.php'); 

if(isset($_POST['name'])) 
{ 
$postedname = $_POST['name']; 
$safename = mysqli_real_escape_string($con, $postedname); 

$checkname = "SELECT * from accounts where name='$safename' LIMIT 1"; 

$query = mysqli_query($con, $checkname); 
$row = mysqli_num_rows($query); 

if($row) { 
    echo 'Name is already taken!'; 
} else { 

    $changename = "UPDATE accounts SET name='$safename' WHERE Name='$_SESSION[username]'"; 
    $query = mysqli_query($con, $changename); 

    if($query) 
    { 
    echo 'Name is changed!'; 
    $_SESSION['username'] = $safename; 
    } 
} 
} 
?> 

И это мой Jquery скрипт (в отдельный файл):

$(function(){ 

$("form").submit(function() { 
    event.preventDefault(); 

    var name = $('#inputName').val(); 


    $.post("changename.php", 
    { 
     name: name 
    }, 
    function(data) 
    { 
      $("#resultDiv").text(data); 
     }); 
}); 
}); 

Код просто отлично работает, он успешно меняет мое имя. Если я хочу, чтобы мое имя было «Джоном», оно успешно меняет его в БД.

Проблема заключается в том, чтобы изменить div с ID resultDiv на Name is already taken!. Вместо этого он принимает весь код HTML changename.php и помещает его в этот DIV. Поэтому вместо 1 строки у меня есть еще 100 строк моей страницы. Так это выглядит следующим образом:

https://gyazo.com/9320a5f15ed67a8ad9298d6172ab6909

Любая идея, почему это не просто сообщение, которое я хочу?

+3

в вашем changename.php, что когда-либо html есть, он будет извлечен из формы ajax. –

+0

Итак, я должен поместить PHP-код в отдельный файл для AJAX? – fidtal

+0

У вас есть 2 варианта, проверьте ответ. –

ответ

1

Ajax будет извлекать все данные из файла, указанного в качестве URL-адреса для него. Если вы хотите этого избежать, у вас есть 2 варианта.

  • Записать условие в changename.php таким образом, чтобы выполнялось только обновление до части db.
  • changename.php сохранить только необходимый код для обновления до db.