1

我有一个带有多个输入和相应按钮的表单。输入名称属性和按钮 id 都相同。IE

<form method="post" action="update.html">
    <input type="text" name="title">
    <button id="title">Submit</button>

    <input type="text" name="metaKeywords">
    <button id="metaKeywords">Submit</button>

    <input type="text" name="metaDescription">
    <button id="metaDescription">Submit</button>
</form>

现在我要做的是获取按钮单击的 id,然后将其值插入到以下位置的我的 php 函数代码中;

<?php

function update() {

    // specify target file name to update   
    $fileName = 'variables.php';

    // Let's make sure the file exists and is writable first.
    if (is_writable($fileName)) {

        // load target filename contents inside a variable
        $content = file_get_contents($fileName);

        // use reg ex to find and replace variable contents within target filename
        $content = preg_replace('/\$**INSERT_BUTTON_ID_HERE**=\"(.*?)\";/', '$**INSERT_BUTTON_ID_HERE**="'.$_POST["**INSERT_BUTTON_ID_HERE**"].'";', $content);

        // open target filename for writing
        $handle = fopen($fileName, 'w');

        // Write $content to our opened file.
        fwrite($handle, $content);

        // success message
        echo "<p>Success, localisation file updated.</p>";

        // close opened file
        fclose($handle);

    } else {

        echo "<p class='errorMessage'>The localisation file is not writable</p>";

    }

}

if (!empty($_POST['**INSERT_BUTTON_ID_HERE**'])) {
    update();
}

?>

这可能吗?

4

2 回答 2

0

首先,您必须决定要使用哪些技术。为了简化这一点,我们只能使用 PHP 来处理您的问题(您可以将 javascript 与 jQuery 一起使用,甚至 AJAX)。

您只需要一个脚本。在这个脚本中(假设它将被称为 update.php)会有你的表单,条件将捕获你发送的 POST,并且在这个条件中会有代码能够处理你的数据并正确存储它。

你的表单需要重定向到它所在的PHP 脚本。所以你需要这样的东西:

<form method="post" action="#">
    <input type="submit" name="submit1" value="Submit 1" />
    <input type="submit" name="submit2" value="Submit 2" />
    <input type="submit" name="submit1" value="Submit 3" />

    <input type="hidden" name="submit1-data" value="title" />
    <input type="hidden" name="submit2-data" value="metaKeywords" />
    <input type="hidden" name="submit2-data" value="metaDescription" />
</form>

对于动作属性,您可以使用“#”或“update.php”——在这种情况下两者的工作方式相同。然后将处理您的表单的函数(将其置于条件中):

<?php
  if($_POST){
    if(isset($_POST['submit1'])){
      //do whatever with variable $_POST['submit1-data']
    }elseif(isset($_POST['submit2']){
      //do whatever with variable $_POST['submit2-data']
    }elseif(isset($_POST['submit3']){
      //do whatever with variable $_POST['submit3-data']
    }
  }
?>

请认为这是一个非常简单的教程。这段代码绝对可以优化和增强。即使我相信你会发现它的用途。

于 2013-09-02T17:25:51.483 回答
0

将您的按钮更改为

<form method="post" action="update.html">
  <input type="text" name="title">
  <input type='submit' name="titleButton">

  <input type="text" name="metaKeywords">
  <input type='submit' name="metaKeywordsButton">

  <input type="text" name="metaDescription">
  <input type='submit' name="metaDescriptionButton">
</form>

然后在您的 PHP 脚本中,通过执行以下操作检查单击了哪个按钮:

<?php
if (isset($_POST['titleButton'])) {
  //Clicked button was title button
} elseif (isset($_POST['metaKeywordsButton'])) {
  //Clicked button was metaKeywordsButton
} elseif (isset($_POST['metaDescriptionButton'])) {
  //Clicked button was metaDescriptionButton
}
?>
于 2013-09-02T18:51:28.827 回答