【问题标题】:create save button in php file and execute some part of php code onclick it在 php 文件中创建保存按钮并在单击它时执行部分 php 代码
【发布时间】:2016-03-11 10:02:55
【问题描述】:

我有一个 js 文件,它接受用户输入并在提交时调用 php 文件。 php 文件显示输入数据的结果。我想创建“保存按钮”来将这些数据保存在我的数据库中。 "保存按钮应该在 php 文件中"

我尝试我的 php 文件中的按钮:

<?php

echo "<input type='button' value='Save Result'> </p>";  

我在同一个 php 文件中尝试使用此代码来保存结果:

$serverName = "Alaa";
$connectionInfo = array( "Database"=>"i2b2blast", "UID"=>"i2b2blast", "PWD"=>"demouser");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}

$sql = "INSERT INTO BlastQueryDim (Query_ID, QuerySeq) VALUES ('Query 2', 'q')";

$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

我想在我点击按钮时执行保存代码。

我尝试并成功完成的是: 在 js 文件中创建一个测试按钮并在点击它时调用 php 文件。在这种情况下,结果成功保存在我的数据库中,但是我希望保存按钮在 php 文件中。

希望你明白我的意思。 非常感谢。

编辑 1: 一种可能的解决方案是从我当前的 php 文件中调用另一个 php 文件。我不喜欢这样,因为我应该发布很多参数。 无论如何,在第一个 php 文件中:

echo "<form action='saveResult.php' method='post' name='Post'>";
echo "<input name='Save' type='submit' value='Save Result'> </p>";  

在第二个php中:

<?php
if(isset($_POST['Save'])) // If the submit button was clicked
{
$serverName = "Alaa";
$connectionInfo = array( "Database"=>"i2b2blast", "UID"=>"i2b2blast", "PWD"=>"demouser");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
$sql = "INSERT INTO BlastQueryDim (QueryID, QuerySeq) VALUES ('6', 'q')";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
}
echo "<script>alert('Saved');</script>";

这项工作成功,但是它将页面导航到 saveResult.php 页面。 如何在后台执行第二个php“saveResult.php”的代码而不重定向我?

【问题讨论】:

    标签: php button


    【解决方案1】:

    您必须为您的按钮创建一个表单。

    <form method="post" name = "post">
     //rest
    </form>
    

    然后在php代码中使用这个

    if($_SERVER['REQUEST_METHOD'] === 'POST'){
    
     //execute code when button is clicked
    
    }
    

    重要

    可以通过其他方式提交表单(例如在文本框中按 Enter)。 所以检查请求中的提交按钮字段并不那么可靠。

    $_POST 只需使用此表达式,您就可以断言:

    1.表单通过POST提交

    2.至少提交了一个字段

    这就是为什么我更喜欢 request_method 而不是检查

    <?php
    if(isset($_POST["submit"]))
    {
    //php code
    }
    

    【讨论】:

    • if($_SERVER['REQUEST_METHOD'] === 'POST'), POST 是指表单名称还是表单方法?因为我在同一个 php 页面中有不同的表单帖子
    • 这里我们选择post/get方法
    • 结果保存到我的数据库中,但是我没有点击保存按钮!
    • @Alaa 它应该只在单击按钮时发送信息。我认为其余的代码可能是错误的?
    猜你喜欢
    • 2021-03-13
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2014-02-24
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多