单击按钮时如何触发PHP / jquery

时间:2012-07-31 03:00:39

标签: php jquery

PHP noob here ...如果你发现这是一个蹩脚的问题,请原谅。

我有以下表格:

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, making sure it is valid
$submit_date = date('Y-m-d H:i:s');
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor']));
$url = "http://example.com/" . $key;


// build query
mysql_query("INSERT INTO `source`(`id`, `key`, `submit_date`, `ip`, `content`) 
VALUES (null, '$key','$submit_date','$ip','$content')")
or die(mysql_error());

}

如何确保只在单击提交按钮时才运行PHP脚本?

2 个答案:

答案 0 :(得分:2)

在页面开头的html标记之前添加此内容 也不要忘记将页面名称扩展名从.html更改为.php

if (isset($_POST['save-text'])) {
    mysql_query("INSERT INTO `source`(`id`, `key`, `submit_date`, `ip`, `content`) 
                 VALUES (null, '$key','$submit_date','$ip','$content')")
    or die(mysql_error());

}

答案 1 :(得分:1)

问题是if($_POST["save-text"])返回false,因此您的代码没有被执行。您需要使用$_POST["save-text"]函数包装isset()isset()可用于检查某个变量的存在,如果存在变量并且其值不是TRUENULL,则会返回FALSE

正确的代码如下所示:

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

您还应确保提交按钮具有“&#39;值”&#39;属性。如果他们没有,那么$ _POST数组中就不会有值,因此isset($ _ POST [&#34; submit&#34;])将返回false。

示例:

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

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

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

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