通过html表单调用php函数

时间:2011-05-09 21:00:31

标签: php html ajax forms function

我进行了搜索并检查了一些建议,这个网站在撰写标题时给了我但没有成功。这是我的问题: 在我的页面上,我通过AJAX加载所有链接,其中一个页面用于从mysql加载数据的配置文件。在个人资料页面的底部,您可以输入代表时间的数字。执行此操作时,我希望页面使用输入的数字更新数据库并更新当前页面。由于我使用AJAX,我只是无法添加一个网址,我希望它转到或重新加载整个页面,因为那样我最终会在起始页面。

我已经创建了一个名为“add_time()”的函数,我想调用它来计算和更新数据库,我不能通过我的表单加载,没有一些我不幸不知道的技巧。

我也想知道如何将它与我的AJAX load_page(url)-script结合起来,这样它就可以同时进行这两个动作。 div已经设置了,但是我已在配置文件页面中标记了切换所在的位置。

个人资料页面:

<?php
$user = $_COOKIE["user"];
$host = "//";
$username = "//";
$password = "//";
$db_name = "//";
$tbl_name = "user_stats";
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
$sql = "SELECT * FROM $tbl_name WHERE username='$user'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if ($count == 1) {
    while ($row = mysql_fetch_array($result)) {
        $user = $row[username];
        $level = $row[level];
        $hours = $row[hours];
    }
}
echo "<h1>$user</h1>";
?>

<table id="profile_form">
    <tr>
        <td id="profile_username">Användare: <?php echo $user; ?></td><td id="profile_level"><?php echo "Level: " . $level . "<br />Hours: " . $hours; ?></td>
    </tr>
    <tr>
        <td id="profile_picture">
            Profil picture.
        </td>
    </tr>
    <tr>
        <td id="profile_title">
            Title:
        </td>
    </tr>
</table>
<!-- Div-break. Guess we just call the upper part "profile" and the lower part "add_time" for now.-->
<form action="" method="post">
    Lägg till tid: <input type="text" name="new_time" />
    <input type="hidden" name="prev_time" value="<?php echo $time; ?>" />
    <input type="submit" value="Lägg till tid" />
</form>

从外部文件调用的函数:

function add_time() {
    $new_time = $_POST["new_time"] + $_POST["prev_time"];
    $user = $_COOKIE["user"];
    $host = "//";
    $username = "//";
    $password = "//";
    $db_name = "//";
    $tbl_name = "user_stats";
    $con = mysql_connect("$host", "$username", "$password") or die("cannot connect");
    mysql_select_db("$db_name") or die("cannot select DB");
    $sql = mysql_query("UPDATE user_stats SET hours = '$new_time'
WHERE username = '$user'");
    mysql_close($con);
    echo $new_time . "<br />";
}

我希望发送代码有所帮助。现在一团糟,对不起。我想我已经挖了很多东西,我可能会让自己感到困惑并乱跑乱跑,所以我还有第二个想法没有挖到这个兔子洞里。

2 个答案:

答案 0 :(得分:1)

Jquery是你的朋友。我不确定我理解你的问题但是。

你可以创建一个ajax.php文件来处理所有你的请求,包括你想要的函数,并调用u upoad $ _GET ['function']。例如。

<强> ajax.php

<?
if(isset($_GET['function'])){
require_once('update.php');
addtime();
}
?>

将回显addtime()的结果。

<强> jquery的

$("#PLACEHOLDER_DIV").load('ajax.php?function=addtime');

告诉我你在numberd列表中需要什么,这样我就能告诉你确切的代码。

跳它有帮助。 :)

答案 1 :(得分:1)

我希望我明白你的问题。如果使用jquery,则可以阻止表单的默认行为。而不是提交您的表单并转到另一个页面,您可以阻止它并通过ajax提交数据。我不确切知道它是如何使用纯JavaScript的,但jquery非常简单。