如何将php的值发送给ajax?
问题描述:
当用户点击<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>
谢谢!
答
快速和肮脏的方式的情况下,你可以是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参数,而不是从查询字符串中获取。
答
在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>