За последние 24 часа нас посетили 16933 программиста и 1651 робот. Сейчас ищут 862 программиста ...

Как выполнить PHP скрипт без перезагрузки страницы?

Тема в разделе "PHP для новичков", создана пользователем Mrackk3, 7 май 2015.

  1. Mrackk3

    Mrackk3 Новичок

    С нами с:
    2 май 2015
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте! Подскажите новичку как реализовать выполнение php скрипта без перезагрузки страницы. Изначально была вот такая задачка - Сколько дециметров ширина монитора с диагональю a дюймов, если ширина относится к высоте как b:c? Точность - 3 знака после запятой. Я ее успешно реализовал с помощью php, кроме того при вводе параметров в форму еще рисуется прямоугольник на canvas. Сейчас все работает но только страница перезагружается, а нужно я так думаю применять теперь ajax... вот страницы с кодом:
    №1
    Код (PHP):
    1. <!DOCTYPE HTML>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>Задача</title>
    6. </head>
    7.  
    8. <body>
    9. <h2>Задача</h2>
    10. <h3>Сколько дециметров ширина монитора с диагональю  a дюймов, если ширина относится к высоте как b:c? Точность - 3 знака после запятой.</h3>
    11. <?php
    12.  
    13. echo '<br />';
    14. function clearData($data, $type='i'){
    15.         switch($type){
    16.                 case 'i': return $data*1; break;
    17.                 case 's': return trim(strip_tags($data)); break;
    18.         }
    19.   }
    20.  
    21. if($_SERVER['REQUEST_METHOD'] == 'POST'){  
    22. $a = clearData ($_POST['a']);             #Получаем первое слагаемое
    23. $b = clearData ($_POST['b']);             #Получаем второе слагаемое
    24. $c = clearData ($_POST['c']);
    25. $resultWidth = round ($a*$c*0.254/sqrt((pow($b,2)+pow($c,2))),3); #Действия с числами  и результат записываем в переменную
    26. $resultWidthCM = round ($resultWidth*10);
    27. $resultHeight = round ($a*$b*0.254/sqrt((pow($b,2)+pow($c,2))),3);    
    28. $resultHeighCM = round ($resultHeight*10);
    29. echo $f = "<img src='rect.php?w=$resultHeighCM&h=$resultWidthCM'>";
    30. echo '<br />';
    31. echo '<br />';
    32. echo 'Результат ширины в дециметрах:<br /> '. $resultHeight;
    33. echo '<br />';
    34. echo 'Результат высоты в дециметрах: <br />'. $resultWidth;   #Выводим результат на экран
    35. echo '<br />';
    36. echo 'Результат ширины в сантиметрах:<br /> '. $resultHeighCM;
    37. echo '<br />';
    38. echo 'Результат высоты в сантиметрах: <br />'. $resultWidthCM;
    39. echo '<br />';
    40. }
    41.  
    42. ?>
    43. <h3>ВВЕДИТЕ ДАННЫЕ В ФОРМУ:</h3><form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
    44.  
    45. Диагональ монитора в дюймах - a:<input type="text" name="a">Ширина  - b: <input type="text" name="b"><br />
    46. Высота  - c:<input type="text" name="c"><input type="submit" value="Считать! ">
    47.  
    48. </form>
    49. </body>
    50. </html> 
    №2

    Код (PHP):
    1. <?php
    2.  
    3. $resultWidthCM = $_GET["w"];
    4. $resultHeighCM = $_GET["h"];
    5.  
    6. $canvas = imagecreatetruecolor($resultWidthCM, $resultHeighCM);
    7.  
    8. // Вывод и освобождение памяти
    9. header('Content-Type: image/jpeg');
    10.  
    11. imagejpeg($canvas);
    12. imagedestroy($canvas);
    13. ?>
    И вот страница в сети http://zadachy.zz.mu/

    * код пиши в тег
    Код ( (Unknown Language)):
    1. [b]][[/b][b]/code][/b][/color]
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    верно думаешь... :)
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Гугли JQuery Ajax, будет тебе счастье.