按钮与不同的目标内部形式与行动

时间:2012-10-26 13:59:03

标签: php javascript jquery html pdo

我对表单有疑问。我创建了一个带有动作的表单,表单里面有两个按钮,一个提交表单,另一个提交但不同的php文件,我该怎么做?这是我的代码:

<form action="viewmember.php">
<input type="text" value="Clyde">
<input type="submit" value="View" id="viewbutton">
<input type="submit" value="Delete" id="deleteButton">
 </form>

viewbutton工作,但我想要发生的是当我点击deletebutton它将提交到不同的php文件让我们说delete.php。如果你问为什么我在表单中包含了addmember按钮,那么当我点击deletebutton时我也可以获得值为“Clyde”的textfield值。

5 个答案:

答案 0 :(得分:6)

给它起个名字:

<form action="viewmember.php" method="POST"> 
<input type="text" value="Clyde">
<input type="submit" name="action" value="Add" id="viewbutton">
<input type="submit" name="action" value="Delete" id="deleteButton">
 </form>

然后

<?php

$action = $_POST['action'];

if($action == "Add")
{
   // add
}
elseif($action == "Delete")
{
   // delete
}

?>

答案 1 :(得分:1)

你需要一些javascript魔法。

$(function(){
     var form = $('form').on('submit', function(){
          return false;
    });
    $('input[value="View"]', form).on('click', function(){
          form.attr('action', 'viewmember.php')[0].submit();
    });
    $('input[value="Delete"]', form).on('click', function(){
          form.attr('action', 'deletemember.php')[0].submit();
    });
});

以上都是未经测试的,但从理论上讲,它应该可行。

答案 2 :(得分:0)

HTML表单始终有一个操作。如果您需要从一个表单提供不同的操作,请使用控制器调度程序,它会相应地读取按钮值和进程。

答案 3 :(得分:0)

你可以做的,而不是有两个单独的PHP文件,有一个PHP文件。然后在那个文件里面你有:

<?php if (isset($_POST['View'])) { Do all your view stuff here } ?>
然后你可以做另一个:

<?php if (isset($_POST['Delete'])) { Do delete stuff here } ?>

请记住,您需要在表单中添加一个方法,POST或GET。在这种情况下,您需要使用POST。

这就是我猜的一种做法。

答案 4 :(得分:0)

您可以添加它。会起作用

import { Component, OnInit } from '@angular/core';
import { WmApiService } from '../wm-api.service';
import { Router } from "@angular/router";

declare const gapi: any;

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})

export class LoginComponent implements OnInit {

  constructor(private _wmapi: WmApiService, private router: Router) { }

  public auth2: any;
  userProfile: any;
  user: any;

  // Initalise Google Sign-On
  // NOTE: Currently registered to http://localhost:4200/ - will need to change when on server to final URL
  public googleInit() {
    gapi.load('auth2', () => {
      this.auth2 = gapi.auth2.init({
        client_id: '933803013928-4vvjqtql0nt7ve5upak2u5fhpa636ma0.apps.googleusercontent.com',
        cookiepolicy: 'single_host_origin',
        scope: 'profile email',
        prompt: 'select_account consent'
      });
      this.attachSignin(document.getElementById('googleBtn'));
    });
  }

  // Log user in via Google OAuth 2
  public attachSignin(element) {
    this.auth2.attachClickHandler(element, {},
      (googleUser) => {
        // Get profile from Google
        let profile = googleUser.getBasicProfile();        
        // Save user to the API until changed
        this._wmapi.tempuser = profile.getName().match(/\(([^)]+)\)/)[1];
        this._wmapi.tempuseravatar = profile.getImageUrl();
        this._wmapi.tempuserfullname = profile.getName();
        this._wmapi.tempuseremail = profile.getEmail();
        // Log the user in
        this._wmapi.userloggedin = 1;
        // Redirect to dashboard
        this.router.navigate(['/dashboard']);
      }, (error) => {
        alert(JSON.stringify(error, undefined, 2));
        // To get auth token - googleUser.getAuthResponse().id_token;
        // To get user id - profile.getId();
      });
  }

  ngAfterViewInit(){
    this.googleInit();
  }

  ngOnInit() {
  }

}