簡體   English   中英

提交具有唯一HREF的表格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM