[英]Submit Form With Unique HREF
因此,我想这样做,因此我有一个href链接形式的Delete page选项。 问题是我不知道如何将数据(POST或GET)发送到服务器以使其正常工作。 我的想法是
<li><a href="javascript:void()" id="page" name="page" value="'.$row['id'].'" onClick="DeletePage()">Delete Page</a></li>
<script>
function DeletePage() {
$.ajax({
type: 'post',
url: 'calls.php',
data: $("#deletepage").serialize() + $("#page").val(),
success: function (data) {
alert(data);
}
});
}
</script>
我在deletepage表单中设置了流程。 IE浏览器。 一个名为process的隐藏变量,该变量告诉调用页面运行deletepage函数。 有什么办法吗? 我对表单结构进行了一些更改,
foreach($resource as $row){
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['enabled']."</td>";
echo '<td><div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Action <span class="fa fa-caret-down"></span></button>
<ul class="dropdown-menu">
<li><a href="./editpage.php?id='.$row['id'].'">Edit Page</a></li>
<li><a href="#">Disable Page</a></li>
<li><a href="#">Enable Page</a></li>
<li class="divider"></li>
<form id="deletepage">
<input type="hidden" name="process" id="process" value="deletepage">
<input type="hidden" name="pageid" id="pageid" value="'.$row['id'].'">
</form>
<li><a href="javascript:void()" id="page" name="page">Delete Page</a></li>
</ul>
</div></td>';
echo "</tr>";
现在它可以工作了(可以),我可以删除第一页,但是此后它不会再接收数据并生成新的表单。 我在想这是因为表单ID只是从具有该名称的第一个表单中提取的,所以我必须给表单一个唯一的名称,然后在循环中创建ajax函数。 Calls.php
require_once($_SERVER['DOCUMENT_ROOT'].'/settings.php');
if(isset($_POST['process'])){
switch($_POST['process']){
case 'login':
$static->Login();
break;
case 'logout':
session_destroy();
break;
case 'updatepage':
$admin->UpdatePage();
break;
case 'addpage':
$admin->AddPage();
break;
case 'deletepage':
print_r($_POST);
break;
}
}
您正在使用Jquery。 它具有更好(更简单)的post()方法: http : //api.jquery.com/jquery.post/
那里有调用php函数的示例:
$.post( "test.php", { func: "getNameAndTime" }, function( data ) {
console.log( data.name ); // John
console.log( data.time ); // 2pm
}, "json");
编辑
我想这就是您想要近似的值(全部):
$.post( "test.php", { func: $("#page").val(), mydata: $("#deletepage").serialize() }, function( data ) {
console.log( data.name ); // John
console.log( data.time ); // 2pm
}, "json");
编辑2在讨论某些具有相同ID的表格之后,也许可以帮助您:
function DeletePage() {
$("body").find(".deletePageForm").each(function(index, element){
$.ajax({
type: 'post',
url: 'calls.php',
data: $(element).serialize() + $("#page").val(),
success: function (data) {
alert(data);
}
});
});
}
您可以使用jQuery.ajax或URL:
<li><a class="edit_page"><input type="hidden" value="' . $row['id'] . '">Delete Page</a></li>
<script>
$(".edit_page").click(function(){
var page_id = $(this).find('input').val();
$.ajax({
type: 'post',
url: 'calls.php',
data: {id : page_id},
success: function (data) {
alert(data);
}
});
}
</script>
网址
<?php echo '<li><a href="calls.php?id='.$row['id'].'">Delete</a></li>';?>
或类似的东西
foreach ($array as $row) {
echo '<li><a href="calls.php?id='.$row['id'].'">Delete</a></li>'
}
最终结果是为表单提供唯一的标识符,并在foreach循环内生成ajax脚本。 最终传递所需数据的原因是:
foreach($resource as $row){
echo ' <script src="http://code.jquery.com/jquery-1.9.1.js"></script>';
echo "<script>
$(function () {
$('#page".$row['id']."').on('click', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'calls.php',
data: $('#deletepage".$row['id']."').serialize(),
success: function (data) {
alert(data);
}
});
});
});
</script>";
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['enabled']."</td>";
echo '<td><div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Action <span class="fa fa-caret-down"></span></button>
<ul class="dropdown-menu">
<li><a href="./editpage.php?id='.$row['id'].'">Edit Page</a></li>
<li><a href="#">Disable Page</a></li>
<li><a href="#">Enable Page</a></li>
<li class="divider"></li>
<form id="deletepage'.$row['id'].'">
<input type="hidden" name="process" id="process" value="deletepage">
<input type="hidden" name="pageid" id="pageid" value="'.$row['id'].'">
</form>
<li><a href="javascript:void()" id="page'.$row['id'].'" name="page'.$row['id'].'">Delete Page</a></li>
</ul>
</div></td>';
echo "</tr>";
我感谢所给予的帮助,以不同的方式指出了我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.