Вызов функции php через HTML-форму - PullRequest
1 голос
/ 10 мая 2011

Я выполнил поиск и проверил несколько предложений, которые этот сайт дал мне при написании заголовка без успеха.Вот моя проблема: на моей странице я загружаю все ссылки через AJAX, и одна из страниц предназначена для профилей с данными, загруженными из mysql.Внизу страницы профиля вы можете ввести число, обозначающее время.При этом я хочу, чтобы страница обновляла базу данных с введенным номером и обновляла текущую страницу.Поскольку я использую AJAX, я просто не могу добавить URL-адрес, на который я хочу перейти, или перезагрузить всю страницу, потому что в результате я попадаю на стартовую страницу.

Я создал функцию с именем "add_time ()"«Я хочу призвать его вычислить и обновить базу данных, которую я не могу загрузить через форму без некоторых хитростей, о которых, к сожалению, я не знаю.

Я также хочу знать, как я могу комбинироватьэто с моим AJAX load_page (url) -скриптом, поэтому он выполняет эти два действия одновременно.Divs не установлен, но я отметил на странице профиля, где будет находиться переключатель.

Страница профиля:

<?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 ]

1 голос
/ 10 мая 2011

Надеюсь, я понял вашу проблему.если вы используете jquery, вы можете предотвратить поведение вашей формы по умолчанию.вместо отправки формы и перехода на другую страницу, вы можете предотвратить это и отправить данные через ajax.я не знаю точно, как это работает с чистым JavaScript, но с JQuery это довольно просто.

1 голос
/ 10 мая 2011

Jquery твой друг.Я не уверен, что понял ваш вопрос, но.

вы можете создать файл ajax.php, который обрабатывает все ваши запросы, включая функции, которые вы хотите, и, например, вызовите загрузку $ _GET ['function'].

ajax.php

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

, который будет отображать результаты для addtime ().

jquery

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

скажите мне, что вам нужно в нумерованном списке, чтобы я мог сказать вам точный код.

надеюсь, это поможет.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...