Как я могу отправить значение из php в ajax? - PullRequest
0 голосов
/ 22 августа 2011

Как я могу отправить значение PersonID в edit.php, когда пользователь нажимает на тег <a>?

<?php
$result = mysql_query("SELECT PersonID, FirstName, LastName, Age FROM persons");
    echo "<table>";    
    while ($row = mysql_fetch_array($result))
    {
        echo "<tr>";
        echo "<td>Name: ".$row['FirstName']." ".$row['LastName'].", Age: ".$row['Age']."</td>";
        ?>
        <td>
            <a class="edit" name="<?php echo $row['PersonID'] ?>">Edit</a>
        </td>
        <?php
        echo "</tr>";
    }
    echo "</table>";
?>

Вот незаконченный ajax,

<script type="text/javascript" language="javascript">        
        $("a.edit").click(function(){
            $(this).closest("tr").after("<div id=\"editform\"></div>");
            $.ajax({
                url: "edit.php",
                // -- WHAT SHOULD BE THE NEXT STEP? --
            });
        });
</script>

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Быстрый и грязный способ, вы можете получить значение PersonID из самого тега, а затем отправить его как часть строки запроса:

  <script type="text/javascript" language="javascript">        
        $("a.edit").click(function(){
            $(this).closest("tr").after("<div id=\"editform\"></div>");
            var personid = $(this).attr("name");
            $.ajax({
                url: "edit.php?personID=" + personid,
                success : function () { /* Add success callback here */ }
            });
        });
  </script>

Предполагается, что вы хотите сделать это с помощью запроса GET. Более холодным (и RESTful ) было бы сделать это с запросом POST и отправить personID в качестве параметра в теле запроса:

 <script type="text/javascript" language="javascript">        
            $("a.edit").click(function(){
                $(this).closest("tr").after("<div id=\"editform\"></div>");
                var personid = $(this).attr("name");
                $.ajax({
                    url: "edit.php,
                    type : "POST",
                    data : { personID : personid },
                    /* add callback etc here */ 
                });
            });
      </script>

В этом случае вам придется изменить edit.php, чтобы получить параметр personID из запроса, а не из строки запроса.

0 голосов
/ 22 августа 2011

В случае запроса GET

<script type="text/javascript" language="javascript">        
    $("a.edit").click(function(){
        var id = $(this).attr("name");
        $(this).closest("tr").after("<div id=\"editform\"></div>");
        $.ajax({
            url: "edit.php" + id,
            success: function(response) {
              // Do whatever
            }
        });
    });
</script>

В случае запроса POST

<script type="text/javascript" language="javascript">        
    $("a.edit").click(function(){
        var id = $(this).attr("name");
        $(this).closest("tr").after("<div id=\"editform\"></div>");
        $.ajax({
            url: "edit.php",
            data: { id: id },
            success: function(response) {
              // Do whatever
            }
        });
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...