如何在按钮被点击时触发PHP/jQuery

3

I have the following form:

HTML

<form id="myForm" action="" method="post">
<div id="edit-box">
<INPUT type="submit" name="save-text" id="save-text" value="Save">
<textarea id="editor" name="editor">
<?php echo $content; ?>
</textarea>
</div>
</form>

PHP

if ($_POST["save-text"]){
    // get form data and do stuff here
}

当我只想在点击提交按钮时运行PHP脚本,应该如何确保它不会在其他时间运行?


1
你的当前代码有什么问题吗? - zerkms
是的,它什么也没做。我想根据表单内按钮的ID触发基于PHP的操作。你能告诉我如何做吗? - Mumbo Jumbo
只需填写 action 为您的 PHP 路径,就完成了。action="path/filename.php" - elclanrs
1
在检查表单是否被提交时,可能需要使用isset()函数,比如 if (isset($_POST['save-text'])) {。同时,尝试在if语句中添加 echo 'submitted';来调试代码,以确认它已经被提交。 - Jeemusu
@user21472,你是用填写action还是使用isset()成功了?让我们知道,这样我们中的一个人就可以将其作为答案编写并由你接受。 - Jeemusu
抱歉...这是对我有效的代码:if(isset($_POST['save-text'])){ - Mumbo Jumbo
2个回答

2
在页面开头的 HTML 标签之前添加此代码。
还要记得将页面名称扩展从 .html 更改为 .php
if (isset($_POST['save-text'])) {
    // get form data and do stuff here
}

1
问题在于if($_POST["save-text"])返回false,因此您的代码没有被执行。您需要使用isset()函数来包装$_POST["save-text"]isset()可以用来检查某个变量是否存在,并且如果变量存在且具有除NULLFALSE之外的值,则返回TRUE

正确的代码应该是这样的:

if (isset($_POST['save-text'])) {
    //Do something
}

您还应确保提交按钮具有“value”属性。如果没有,$_POST数组中就不会有值,因此isset($_POST["submit"])将返回false。

示例:

<input type="submit" name="submit">

isset($_POST["submit"])   // returns false

<input type="submit" name="submit" value="submit">

isset($_POST["submit"])   // returns true.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接