Получение через DOM из файла, к которому я сделал пост-запрос через ajax - PullRequest
0 голосов
/ 14 декабря 2011

Я использовал эти упрощенные примеры, чтобы лучше объяснить вопрос.

с учетом следующего почтового запроса под ajax:

$(document).ready(function()
{
   $(#submit).click(function()
   {
    $var = $("#result");
    $code = $("#code"); 
    $.post("ajax.php", {option : $var, code: $code}, function()
   {
     //Getting through the DOM could be useful if you want to analyse the answer coming from the ajax.php file
      var $DOMresponse = getElementByTagName("div")[0].firstChild.data; // I would want the correct code here because this is incorrect... this is ti give you an idea
      if($DOMresponse == "your code is correct")
      {
        $("#container1").fadeOut(400, function(){ $("#container1").html(result); });
        $("#container1").fadeIn();
      }
      elseif($DOMresponse == "your code is incorrect. Go again trough the procedure")
      {
        $("#container2").fadeOut(400, function(){ $("#container2").html(result); });
        $("#container2").fadeIn();
      }
       // In this second case I could fill the second container id="container2"
    });
  });
});

Пример ajax.php:

<?php
 if($_POST['request']==1)
 { 
     if($_POST['code']==$user['code'])
     {
       ?><img src="...">
         <div>tomatoes</div>
         <div>potatoes</div>
         <div id="answer">your code is correct</div> <?php 
     } 
     else
     {
       ?><img src="...">
         <div>apples</div>
         <div>oranges</div>
         <div>your code is incorrect. Go again trough the procedure</div> <?php
      }
 }

Я хотел бы знать, как пройти через DOM файла ajax.php.

как мне это сделать? Спасибо

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Я думаю , что вы спрашиваете, как вы получаете значение $ ('# code') в файле ajax.php.

Вот что вы делаете:

  var $code = $('#code'); // jQuery object
  $.post('ajax.php', { code: $code });

Проблема в том, что вы передаете весь объект jQuery в ajax.php.Вероятно, вы захотите передать значение или html объекта $ ('# code') следующим образом:

  var code = $('#code').html(); // if it's a non-input element
  var code = $('#code').val(); // if it's an input
  $.post('ajax.php', { code: code });

Затем в файле ajax.php ваш $ _POST ['code'] будет равно значению кода (например, «ABC123»), которое вы затем сможете использовать для сравнения с $ user ['code'] или чем угодно.

Надеюсь, я правильно понял проблему.Удачи.

РЕДАКТИРОВАТЬ: Я думаю, я понимаю, что вы получаете в настоящее время.Что вы хотите сделать, это:

HTML:

Javascript:

    var $option = 'request';
    var $code = $('#code').val();
    $.post('ajax.php', { option: $option, code: $code }, function(data) {
        if (data == 'valid') {
             // show valid code result here
        } else {
             // show invalid code result here
        }
    });

и ajax.php

    <? if ($_POST['option'] == 'request') {
          if ($_POST['code'] == '123ABC') {
              echo 'valid';
          } else {
              echo 'invalid';
          }
       }
    ?>

Обратите внимание, что переменная data происходит из функции (data) в параметре $ .post.Эта переменная data содержит ответ от ajax.php (в моем примере это будет 'valid'.)

0 голосов
/ 15 декабря 2011

Вам нужно сделать это перед тем, как вставить результат на страницу? Если это так, создайте новый элемент и вставьте в него результат. Например

var div = document.createElement('div');
var obj = $(div).html(response);

Теперь у вас есть стандартный объект jQuery с элементом dom.

Ответ на комментарий:

Я в замешательстве. Вы хотите проверить код в php или js? Похоже, что вы проверяете, совпадает ли то, что отправлено по почте, с переменной $ user Таким образом, проверка кода выполняется в php. В этом случае было бы проще использовать json в качестве ответа. В php-скрипте создайте массив результатов с состоянием ключа, установленным в 1 или 0. В post resposne вы можете проверить response.status == 0.

В остальном выглядит странным, что вы делаете проверку один раз в php и дважды в js после ответа. Кроме того, если вы установили в качестве ответа стандартный текст, вам нужно создать элемент dom и поместить ответ внутри, чтобы иметь возможность искать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...