2011-08-22 119 views
0

当用户点击<a>标签时,如何将PersonID的值发送到edit.php?如何将php的值发送给ajax?

<?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>"; 
?> 

这里的unfinish 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

快速和肮脏的方式的情况下,你可以是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

在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>