Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Викане на PHP функция от HTML

Featured Replies

Здравейте,

кода е следният. Някаква идея защо пущината не работи?! Благодаря предварителноsad.gif

<?php

echo '

<INPUT TYPE=button VALUE=add ONCLICK="<?php addRec(); ?>)";

<INPUT TYPE=button VALUE=del ONCLICK="<?php delRec(); ?>)";

';

function addRec()

{

$db = mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('insert into miro (firma, adres) values ("123...","321...")',$db);

}

function delRec()

{

$db = mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('delete from miro where id>2',$db);

}

?>

  • Администратор

Защото очевидно нямаш представа изобщо как работи PHP / HTTP

Да не говорим че дори не си затворил правилно наговете на input-ите

Браузъра подава заявка към PHP скрипта, PHP скрипта генерира HTML код и го връща на браузъра, който го визуализира

Няма как браузъра да използва директно функция на PHP, той трябва да направи нова заявка към скрипта

Т.е. правилния начин да се напише е:

<?php


if ( $_GET['act'] == 'add' )

{

addRec();

}


if ( $_GET['act'] == 'del' )

{

delRec();

}


echo '


<script language="javascript">

function addrec()

{

window.location.href = 'index.php?act=add';

}


function delrec()

{

window.location.href = 'index.php?act=del';

}

</script>


<INPUT TYPE=button VALUE=add ONCLICK="addrec()">

<INPUT TYPE=button VALUE=del ONCLICK="delrec()">

';


function addRec()

{

$db = mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('insert into miro (firma, adres) values ("123...","321...")',$db);

}

function delRec()

{

$db = mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('delete from miro where id>2',$db);

}

?>

  • Автор
Защото очевидно нямаш представа изобщо как работи PHP / HTTP

Да не говорим че дори не си затворил правилно наговете на input-ите

Браузъра подава заявка към PHP скрипта, PHP скрипта генерира HTML код и го връща на браузъра, който го визуализира

Няма как браузъра да използва директно функция на PHP, той трябва да направи нова заявка към скрипта

Т.е. правилния начин да се напише е:

...

...

Значи, аз нямам никакви претенции да разбирам и за това питам, ама примера който си дал не работи. Хайде да опитаме пак?!

П.П. Бирата/баничка/толумбичка/боза от вчера седи

П.П.П. Схванах идеята, и сега бачка, но проблема, след рефреш да изпълнява последно избраната функция остава....

Редактирано от diver (преглед на промените)

Тези двете просто ги махни от php-то и ги сложи в хтмл:

<INPUT TYPE=button VALUE=add ONCLICK="<?php addRec();?>">

<INPUT TYPE=button VALUE=del ONCLICK="<?php delRec();?>">

  • Автор
Тези двете просто ги махни от php-то и ги сложи в хтмл:

<INPUT TYPE=button VALUE=add ONCLICK="<?php addRec();?>">

<INPUT TYPE=button VALUE=del ONCLICK="<?php delRec();?>">

точно така бачка, но след рефреш, без да е натиснат клавиш, ходи и си пише в бозата данни ток да го убие....

  • Администратор

Значи е време да почетеш малко за създаването на уеб-приложения

Нещата не са чак толкова прости колкото изглеждат

Надявам се си разбрал идеята до тук, ето как няма да имаш проблем с refresh-а. Макар че гарантирам, не е най-добрия начин да се прави

Ето току що изтестван скрипт, test.php

<?php


if ( $_GET['act'] == 'add' )

{

addRec();

header("Location: test.php");

exit;

}


if ( $_GET['act'] == 'del' )

{

delRec();

header("Location: test.php");

exit;

}




echo '


<script language="javascript">

function addrec()

{

window.location.href = \'test.php?act=add\';

}


function delrec()

{

window.location.href = \'test.php?act=del\';

}

</script>


<INPUT TYPE=button VALUE=add ONCLICK="addrec()">

<INPUT TYPE=button VALUE=del ONCLICK="delrec()">

';


function addRec()

{


$db = mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('insert into miro (firma, adres) values ("123...","321...")',$db);

}

function delRec()

{

$db = mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('delete from miro where id>2',$db);

}

?>

Редактирано от poisk (преглед на промените)

  • Автор

Мерси. Всичко бачка. Инак си прав;) Нещата изглеждат по-прости от колкото са в действителност...очевидно е много различно от писането на "С" и АСМ...Ама още ми е трудно да схвана логиката и последователността кое кога се изпълнява....ПХП-то ми е близко до това с което съм се занимавал и за тва се опитвам да приспособя сичко към познатото....

  • Администратор
Мерси. Всичко бачка. Инак си прав;) Нещата изглеждат по-прости от колкото са в действителност...очевидно е много различно от писането на "С" и АСМ...Ама още ми е трудно да схвана логиката и последователността кое кога се изпълнява....ПХП-то ми е близко до това с което съм се занимавал и за тва се опитвам да приспособя сичко към познатото....

Логиката е проста

Скрипта се изпълнява еднократно преди да се покаже нещо в браузъра, след което подава HTML код. Разбира се ако го подава към браузър, нищо не пречи PHP да генерира XML, PDF или какъвто формат се изисква.

Та "вграждането" на PHP в HTML е просто стил на писане, където свободно се смесва скрипта и output-а, но реално всичко се изпълнява веднъж на сървъра и за браузъра остава само HTML-а. Мисля че точно вграждането му в HTML-код ( а то по-скоро е вграждане на HTML код в PHP скрипт ) предизвиква объркването, че можеш спокойно да използваш PHP по всяко време след като страницата е заредена. Повтарям, PHP се изпълнява до преди показване на страницата в браузъра

За да покаже друго, трябва да бъде извикан повторно, което става чрез:

* Submit на форма

* Отиване на URL

* AJAX или JS/frame

И разбира се, никой не се е родил научен, така че не се притеснявай да питаш. Извинявам се, ако съм бил малко по-рязък в тона си ;)

  • Автор
...И разбира се, никой не се е родил научен, така че не се притеснявай да питаш. Извинявам се, ако съм бил малко по-рязък в тона си :P

Мерси. Нещата малко по-малко се изясняват. След като почета малко пак ще питам....

Повтарям, PHP се изпълнява до преди показване на страницата в браузъра

Това обяснява нещата. Да разбирам ли, че няма никакъв начин да изпълнявам ПХП функции без да презареждам ХТМЛ-а?

Редактирано от diver (преглед на промените)

  • Администратор
Мерси. Нещата малко по-малко се изясняват. След като почета малко пак ще питам....

Това обяснява нещата. Да разбирам ли, че няма никакъв начин да изпълнявам ПХП функции без да презареждам ХТМЛ-а?

Има. Обикновено му викат AJAX ( асинхронен JavaScript и XML ), иначе класически се прави с JavaScript и iframe. Целия номер е че javascript-а прави нова заявка към сървъра ( дали е по XMLHTTP / ajax или като смени location-а на скрит iframe е почти едно и също ), и прочита какво е генерирал сървъра съответно ако се налага променя съдържанието на страницата. Мога да ти дам някои прости ajax примери, ако те интересуват :P

  • Автор
Има. Обикновено му викат AJAX ( асинхронен JavaScript и XML ), иначе класически се прави с JavaScript и iframe. Целия номер е че javascript-а прави нова заявка към сървъра ( дали е по XMLHTTP / ajax или като смени location-а на скрит iframe е почти едно и също ), и прочита какво е генерирал сървъра съответно ако се налага променя съдържанието на страницата. Мога да ти дам някои прости ajax примери, ако те интересуват :P

Мерси. Интересува ме. За да не задавам глупави въпроси, би ли препоръчай някаква литература по въпроса моля.

П.П. Ако съм схванал правилно идеята е следната:

<?php

if(@$_POST['b1']){

addRec();

header("Location: ekran.html");

exit;

}

function addRec()

{

$db = @mysql_connect("localhost","root","1234");

mysql_select_db("test",$db);

mysql_query('insert into miro (firma, adres) values ("111...","222...")',$db);

}

?>

<form method=post>

<INPUT TYPE=text name=test>

<INPUT TYPE=submit name=b1 id=b1 VALUE=add>

</form>

Май така иде по-елегантно или нещо бъркам?!

Редактирано от diver (преглед на промените)

  • Автор

Мерси. Предполагам, че знаете и този сайт, ама аз нали от скоро се занимавам и да споделя с вас:

http://webfx.eae.net/

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.