Возврат данных Ajax Post обратно к успешному завершению

#php #ajax #forms #jquery

#php #ajax #формы #jquery

Вопрос:

У меня есть очень простая форма. Так просто, что это пугает. Когда я запускаю форму, она возвращает данные И сообщение, которое мне требуется, однако она открывает другую пустую страницу для отображения данных. Я понятия не имею, как вернуть данные запроса из файла обработчика php к успешному обратному вызову. Я попытался добавить их в форму. Обычно я делаю это в codeigniter, и это не «все, что» сложно сделать там.

форма и ajax

 <form method="post" action="/checkipf.php" id="checkip">
<label>Enter the Address</label> amp;nbsp;amp;nbsp; <input type="text" size="30" maxlength="20" name="ip" id="ip" required /><br />

<input type="submit" value="Submit" name="submit" id="submit">amp;nbsp; amp;nbsp; amp;nbsp;   amp;nbsp; 
<div id="display"></div>
  

 <script type="text/javascript">
$(function() {

$("#checkip").submit(function(){
var data = $('#checkip').serialize();

$ajax({
    url: "checkipf.php",
    type: "POST",
    data: data,
    success: function(msg) {                        
      $('#display').html(msg).show(1000);   // is this correct?         
      }
    }); 
    return false; 
});
});
</script>
  

Обработка php-файла

 $ip = mysql_real_escape_string($ip);
    if ($ip = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)){
    $sql = "SELECT `ip`, `total` FROM `spammer` where `ip` = '$ip'";
    $result = mysql_query($sql) or die(mysql_error());
    $count = mysql_num_rows($result);
    while ($row = mysql_fetch_array($result)) {
        $ip = $row['ip'];
        $total = $row['total'];
    }
    if ($count > 0) {
        echo "$ip has appeared $total times";

        } else {
            echo "$ip has not been seen";           
        }
    }else{
        echo "IP does not validate";
    }
  

Как отмечалось ранее, правильное эхо в файле php возвращается на пустой странице. Я просто не могу передать их в обратный вызов success. Если я запускаю оповещение, данные показывают, что оно публикуется ajax

Спасибо за ваше время

Ответ №1:

Вы пропустили a . в вашей функции

 <script type="text/javascript">
$(function() {

$("#checkip").submit(function(){
var data = $('#checkip').serialize();

$.ajax({
    url: "checkipf.php",
    type: "POST",
    data: data,
    success: function(msg) {                        
      $('#display').html(msg).show(1000);   // is this correct?         
      }
    }); 
    return false; 
});
});
</script>
  

Комментарии:

1. Я, должно быть, дважды слеп, я не вижу этого и не получаю ошибку с firebug. Какая строка?>

2. О боже, спасибо. Теперь я чувствую себя глупо. И что мой друг — победитель. TY.

3. Ха-ха! Нет проблем. Мы все совершаем эти глупые маленькие ошибки, которые сами не можем увидеть.

Ответ №2:

 <div id="display" style="display:none;" ></div>
  

Затем попробуйте показать это с полученным сообщением, как вы делали в своем коде.

Комментарии:

1. Нет, у меня все еще есть пустая страница с отображением возвращаемых данных