получить идентификатор кнопки после щелчка, используя php

У меня есть форма с несколькими входами и соответствующими кнопками. Атрибут имени ввода и идентификатор кнопки одинаковы. т.е.

<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> 

теперь то, что я хочу сделать, это получить идентификатор кнопки, а затем вставить его значение внутри моего кода функции 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(); } ?> 

Это возможно?

Измените свои кнопки на

 <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 } ?> 

Прежде всего, вам нужно решить, какие технологии вы собираетесь использовать. Чтобы упростить это, мы можем справиться с вашей проблемой только с 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'] } } ?> 

Пожалуйста, конкретизируйте это очень простой учебник. Этот код может быть определенно оптимизирован и расширен. Хотя я считаю, что вы найдете его использование.