Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/55: Рейтинг темы: голосов - 55, средняя оценка - 4.76
1 / 1 / 1
Регистрация: 05.09.2014
Сообщений: 34
1

Функция php в html по нажатию кнопки

07.06.2018, 01:28. Показов 11496. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется такая задача:
1. Html файл, в нём поле для ввода и кнопка.
2. При нажатии на кнопку - значения с поля для ввода должно заносится в базу данных mysql.

HTML5
1
2
3
4
5
6
7
<script>
function Sib(){
alert('sebe');
}
</script>                               
                                
<input type="submit" name="continue" value="Sign On" data-id="submit" onclick="Sib();" class="button cob" origin="cob"/>
Здесь функция срабатывает при нажатии кнопки. Но как только я ставлю php - она начинает выполяться сразу при открытии страницы.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<script>
function Sib(){
<?php
 // Параметры для подключения
$data = "123";
    
$db_host = "localhost"; 
$db_user = "root"; 
$db_password = "pass"; 
$db_table = "s";
    
// Подключение к базе данных
$db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Не могу создать соединение ");
    
// Выборка базы
mysql_select_db("db",$db);
    
// Установка кодировки соединения
mysql_query("SET NAMES 'utf8'",$db);
    
$result = mysql_query ("INSERT INTO ".$db_table." (data) VALUES ('$data')");
    
if ($result = 'true'){
echo "Информация занесена в базу данных";
}else{
echo "Информация не занесена в базу данных";
}
?>
}
</script>                               
                                
<input type="submit" name="continue" value="Sign On" data-id="submit" onclick="Sib();" class="button cob" origin="cob"/>
Второй вопрос - как извлечь текст из поля для текста и передать его этой функции в переменную data, но это уже совсем другая история))
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2018, 01:28
Ответы с готовыми решениями:

Создание html файла по нажатию кнопки
По нажатию по кнопке должен на диске C создаться html файл using System; using...

Вывод таблицы БД на HTML страницу по нажатию кнопки
Есть Виндовс-форма на ней кнопка &quot;показать веб-страницу&quot; мне нужно из бд взять таблицу и при...

Функция javascript вызывается по нажатию кнопки asp
Здравствуйте. Есть функция, написанная на javascript &lt;script type=&quot;text/javascript&quot;&gt; function...

Выполнение php - кода по нажатию кнопки
Надо выполнить php-код по нажатию кнопки. Как это лучше сделать?

5
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
07.06.2018, 06:32 2
Bars1337, какая идея изначально?
0
14 / 13 / 10
Регистрация: 01.04.2018
Сообщений: 106
07.06.2018, 07:38 3
Bars1337, вам надо в функцию Sib() вставлять JS код, который будет отправлять Ajax запрос к файлу.php, где и будет происходить добавление информации в бд.

Добавлено через 2 минуты
Цитата Сообщение от Bars1337 Посмотреть сообщение
как извлечь текст из поля для текста
не могу сообразить, что вы имеете в веду...
0
24 / 24 / 15
Регистрация: 05.06.2018
Сообщений: 83
07.06.2018, 09:33 4
Bars1337,
1) Вы неправильно понимаете работу JavaScript-кода и php-кода. То, что вы вставляете php-код внутрь функции Sib(), еще не делает этот код частью функции javascript'а.
2) php-код стоит выделить в отдельный файл - вашеимя.php. И уже из функции Sib() в этот файл php при помощи ajax будут отправляться любые данные, которые вы захотите.
3) Сам php-код стоит делать в отдельный файл хотя бы потому, что у пользователя может быть выключен javascript вообще. То есть вы в любом случае должны делать отправку этих данных без какого-либо javascript'а, только при помощи php, и уже потом можно делать это через аякс.
4) Как я понял, извлечь текст вы хотите из <input type='text'>? Для этого есть $_POST- и $_GET-данные, которые мы получаем от клика на кнопочку Submit.
0
1 / 1 / 1
Регистрация: 05.09.2014
Сообщений: 34
07.06.2018, 13:15  [ТС] 5
Цитата Сообщение от atanov Посмотреть сообщение
Bars1337, какая идея изначально?
Html - файл:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
<title>Login</title>
</head>
<body>
 
<script>
function Sib(){
<!-- PHP CODE -->
}
</script>
 
 <input  aria-required="true" type="text" id="login" name="login" value="" maxlength="14" class="OneLinkNoTx" autocorrect="off" autocapitalize="off"/>
 <input type="submit" name="continue" value="Sign On" data-id="submit" onclick="Sib();" class="button cob" origin="cob"/>
</body>
</html>
При нажатии на кнопку информация с login должна заносится в бд средствами php.

Добавлено через 19 минут
Цитата Сообщение от Mr_Nerub Посмотреть сообщение
2) php-код стоит выделить в отдельный файл - вашеимя.php. И уже из функции Sib() в этот файл php при помощи ajax будут отправляться любые данные, которые вы захотите.
3) Сам php-код стоит делать в отдельный файл хотя бы потому, что у пользователя может быть выключен javascript вообще. То есть вы в любом случае должны делать отправку этих данных без какого-либо javascript'а, только при помощи php, и уже потом можно делать это через аякс.
4) Как я понял, извлечь текст вы хотите из <input type='text'>? Для этого есть $_POST- и $_GET-данные, которые мы получаем от клика на кнопочку Submit.
Как это можно реализовать в коде ? Дело в том что при нажатии кнопки ещё должен происходить переход на другую страницу.
Получается что надо перенаправлять данные в php-файл, а потом уже на целевую ?
0
24 / 24 / 15
Регистрация: 05.06.2018
Сообщений: 83
07.06.2018, 13:29 6
Лучший ответ Сообщение было отмечено Bars1337 как решение

Решение

Bars1337, код javascript не работает с кодом php. То есть, к примеру, код ниже работать не будет так, как того хочется:
Javascript
1
2
3
4
5
6
7
8
9
<script>
<?php
$id = '123';
$login = 'маруся';
?>
 
alert($login);
alert($id);
</script>
Код js просто не видит код php.

По-хорошему должно быть что-то вроде такого:
HTML-файл
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<html>
<head>
<title>Login</title>
</head>
<body>
 
<script>
function Sib(form) {
    var login= "login=" + form.login.value;
    var request = new ajaxRequest();
    request.open("POST", "имяфайла.php", true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.onreadystatechange = function() {
        if (this.readyState == 4)
            if (this.status == 200)
                if (this.responseText != null)
                    alert('ok');
    }
    request.send(params);
}
 
function ajaxRequest()
{
    var request;
    try {
        request = new XMLHttpRequest();
    }
    catch(e1) {
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e2) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e3) {
                request = false;
            } 
        } 
    }
    return request;
}
</script>
 
 <form action='имяфайла.php' method='post'>
 
 <input  aria-required="true" type="text" id="login" name="login" value="" maxlength="14" class="OneLinkNoTx" autocorrect="off" autocapitalize="off"/>
 <input type="submit" name="continue" value="Sign On" data-id="submit" onclick="Sib(form.this);" class="button cob" origin="cob"/>
 
</form>
 
</body>
</html>
имяфайла.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 // Параметры для подключения
$data = $_POST['login'];
    
$db_host = "localhost"; 
$db_user = "root"; 
$db_password = "pass"; 
$db_table = "s";
    
// Подключение к базе данных
$db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Не могу создать соединение ");
    
// Выборка базы
mysql_select_db("db",$db);
    
// Установка кодировки соединения
mysql_query("SET NAMES 'utf8'",$db);
    
$result = mysql_query ("INSERT INTO ".$db_table." (data) VALUES ('$data')");
    
if ($result = 'true'){
echo "Информация занесена в базу данных";
}else{
echo "Информация не занесена в базу данных";
}
?>
Обрати внимание на добавленные теги <form></form>, изменение onclick кнопки submit и на то, как получают отправленные данные. Те функции в js-коды - это ajax.

Фактически, если тебе кровь из носу надо именно работа через js, то гугли ajax. Именно он отвечает за передачу данных через javascript в php-файл и обратно.
Если же тебе просто надо передать значение текста из input=text, то можешь полностью убрать js-код и работать только с тегом <form> и $_POST-данными.

Добавлено через 4 минуты
Цитата Сообщение от Bars1337 Посмотреть сообщение
Как это можно реализовать в коде ? Дело в том что при нажатии кнопки ещё должен происходить переход на другую страницу.
Получается что надо перенаправлять данные в php-файл, а потом уже на целевую ?
Если тебе просто нужно работать с полученными данными, то работай только с <form> и $_POST-данными(или $_GET).
В самом php-файле, если нужна переадресация, используй header():
PHP
1
2
3
4
5
if ($result = 'true'){
header("Location: http://mysite.com");
}else{
echo "Информация не занесена в базу данных";
}
2
07.06.2018, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2018, 13:29
Помогаю со студенческими работами здесь

Как открыть один документ html из другого по нажатию кнопки?
К примеру вводится логин и пароль. Если существует такая страница html, название которой совпадает...

Как запустить PHP скрипт по нажатию кнопки?
Здравствуйте! Уже несколько дней не могу решить вопрос, искал ответ в разных областях - не смог...

Как запустить PHP скрипт по нажатию кнопки
Здравствуйте На HTML странице есть кнопка после нажатия которой надо запустить скрипт PHP после...

Как в html по нажатию кнопки запустить cgi скрип в фоновом режиме
Подскажите пожалуйста, как в html по нажатию кнопки запустить cgi скрип и вернуться обратно на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru