php - 按钮 Onclick 调用 Javascript,Javascript 调用 PHP 文件添加到 Mysql 数据库

标签 php mysql database onclick

我需要有关添加到数据库的帮助。 我想从按钮单击方法调用 javascript scrt。 Javascript 脚本,我想调用一个 php 文件,其中包含一些添加到 MySQL 数据库的代码。

我确实尝试了 20 多个网站,但没有任何帮助。

如果 AJAX 会更好你能帮帮我吗?

按钮代码:

<input type="button" value="favorites1" onClick="favfunct();"> 

Javascript 代码

function favfunct() {
    var target = document.createElement( "script" );
    target.setAttribute( "src", "php/addtofavorites.php" );
    document.getElementsByTagName( "body" )[0].appendChild( target );`
}

PHP代码

<?php
    echo "test successful"
    $con = mysql_connect("localhost","root","student");
    if ($_POST["get"] == 'runfunction')
        echo "Works";
    }
    if ($_POST["action"] == 'favorites1'){ 
        echo "Testing Was Successful"
        if (!$con)
        {
            die('Could not connect: ' . mysql_error());
        }                   
        mysql_select_db("tvid", $con);
        $sql="INSERT INTO Persons (userid, davorites) VALUES 
            ('1','$_POST[video0]')";
        if (!mysql_query($sql,$con))
        {
            die('Error: ' . mysql_error());
        }
        echo "Your Video was Added To Your Favorites";
        mysql_close($con)
    }
?>

最佳答案

因此,这种“工作方式”与敲入螺钉的方式相同。它会进入那里,但不是您真正想要做事的方式。

不要使用脚本标签来触发 php 页面。您的页面将触发,但它不是完成工作的错误工具。你想使用 AJAX。 AJAX 是专门为此目的而制作的,而脚本标签则用于在页面上运行脚本。它将尝试获取 addtofavorites.php 的内容,但它期望 JavaScript 作为返回值。而且您将无法使用 $_POST,因为您无法将数据发布到请求。

相反,请使用 AJAX。如果您已经在使用 JavaScript 库,那么它将为您提供一个很好的 AJAX 包装器(我不知道有哪个库没有这样做)。您可以查看给定库的 API 文档,了解有关如何使用 AJAX 功能的文档(jQueryPrototype.jsMootools 等)。

例如,我将使用 jQuery,因为它是最流行的之一。这是对您的页面使用 jQuery 的请求(以及看起来是预期的变量)

// Call an AJAX function to the proper page
$.ajax("php/addtofavorites.php", {
        // Pass our data to the server
        data: { "get" : "runfunction", "action" : "favorites1" },
        // Pass using the appropriate method
        method: "POST",
        // When the request is completed and successful, run this code.
        success: function (response) {
                // Successfully added to favorites. JS code goes here for this condition.
            }
    });

此外,作为旁注,PHP 中的每一行末尾都需要一个分号 ;。你们中的许多人没有。第三行缺少左括号 { 虽然我不确定这是否只是您复制粘贴的产物。

附录

我也推荐使用 jQuery 来监听事件。 events jQuery 的 API 可以让你监听对象上的事件。所以,像这样:

<input id="button_1" type="button" value="favorites1" />

和 jQuery

$(document).ready(function () { // Make sure the elements are loaded on the page
    // Listen for a click event on the button
    $('#button_1').click(favfunct);
});
// Now define the function
function favfunct(e) {
    // Stop the page from "following" the button (ie. submitting the form)
    e.preventDefault();
    e.stopPropagation();
    // Insert AJAX call here...
}

关于php - 按钮 Onclick 调用 Javascript,Javascript 调用 PHP 文件添加到 Mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446640/

相关文章:

javascript - 为每件商品/文章制作动态愿望 list

php - PDO 设置 PDO::MYSQL_ATTR_FOUND_ROWS 失败

javascript - Ajax请求返回空数组

php - Zend_Auth getidentity 始终返回 null

php - 如何在存储过程中编写多个查询

php - 将json数组插入mysql数据库

python - 根据主表一列spark.sql验证两列中的数据

database - 查询的 SQL 空结果

sql - 软删除是个好主意吗?

java - 将标识符附加到 Oracle session