Jump to content
  • 0

Подгрузка php файла с JS с jquery


alex_anderr
 Share

Question

Привет.

Как правильно подгрузить javascript через ajax jquery?

У меня форма ссылается на файл php в конце которого есть javascript. Сам JS прекрасно срабатывает, например alert(), а вот вызов jquery скрипта уже не катит.

в файле с формой


<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="js/script.js" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="js/script.css" />
</head>
далее форма, которая отправляется с помощью jquery

в файле php


<?php
бла-бла-обработка формы
в ней появляется нужная мне переменная
?>
<script>
которую я вставляю здесь посредством обычного var value = <?php echo $val ?>
все ок, а дальше
if (value == 3) {
$().toast('showSuccessToast', "some message here");
}
</script>
вот этот "тост" вызывается только после подключения файлов, которые подключаются в первом файле.

Использую скрипт jquery-toastmessage на странице.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

если вы хотите выполнить этот при помощи ajax, то вам нужно сделать что то типа этого:

- отправлять форму не по кнопке не с типом submit а button, и по событию onclick запускать JS функцию, которая будет формировать из данный введенных в форму ассоциативный массив типа:


var mass = {
"имя_переменной1":"значение1",
"имя_переменной2":"значение2",
}

далее этот массив отправляется при помощи такого кода


$.getjson('chegototam.php', {param: mass}, function (val){

тут будет код который будет обрабатывать результаты работы скрипта chegototam.php

})

а ваш php скрипт должен иметь вид


<?php
бла-бла-обработка формы
в ней появляется нужная мне переменная
echo json_encode($val);
?>

примерно так

Link to comment
Share on other sites

  • 0

Да, как это всегда бывает, неверно задан был вопрос.

jquery load() подгружает страницу со скриптом.

А данные в форме обрабатываются serialize(), т.е. фактически они в джейсон переводятся.

Получается сам скрипт подключается на главной странице, а вызов скрипта происходит на подгружаемой. Вообще возможно ли это?

на jquery:


Загружает HTML из удаленного файла и встраивает его в объектную модель документа (DOM).
По умолчанию выполняется как запрос типа GET, однако, если будут переданы дополнительные данные в форме объекта, пар ключ/значение, то операция выполнится как запрос типа POST. Дополнительные параметры, указанные как строка, НЕ приведут к запросу типа POST.

значит, что DOM строится, а будет ли работать вызов скрипта? Или в dom это не входит?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Обсуждения

    • Вот тут есть актуальный список бесплатных тестов с сертификацией https://www.classcentral.com/report/free-certificates/ Обратите внимание на HackerRank, там есть тест с сертификацией непосредственно по CSS
    • Нужно сверстать по картинке меню-бар. Не получается сделать вот это поле поиска <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style> .nav {     display: flex;     list-style-type: none;     padding-left: 0;     font-size: 17px;     text-transform: uppercase; } .nav > li > a {     color: #fff;     text-decoration: none; } .nav > li {     padding-left: 29px;     margin-left: 30px; } .header {     display: flex;     background-color: #31485b;     justify-content: space-between;     align-items: center; }   .sidebar {     width: 410px;     display: block;     padding-right: 20px;     margin: auto;     margin-left: 250px; }   ul.nav li a:hover {     background-color: #687c8d;     padding: 17.2px 35px; }   input[type="text"], input[type="search"] {   background-color: #687c8d;   width: 60%;   padding: 8px;   margin: 0 50px }   input[type="search"] {     color: #31485b;     font-style: italic; }     </style> </head> <body>     <div class="header">                 <ul class="nav">                     <li class="s1"><a href="#">Главная</a></li>                     <li><a href="#">Блог</a></li>                     <li><a href="#">Сервисы</a></li>                     <li><a href="#">Онлайн-профессии</a></li>                     <li><a href="#">О сайте</a></li>                 </ul>                                 <div class="sidebar">                     <form method="post" action="#" id="search_form" >                       <input type="search" name="search_field" placeholder="Поиск" />                     </form>                   </div>     </div> </body> </html>  
    • ЭЭ, а почему оно должно удалять? Может стоило повесить событие на эту кнопку и указать, что при это должно происходить?
    • например -R не будет качать указанные файлы если вы знаете список нужных вам файлов, проще их указать или можно написать парсер
    • выкладывайте код в песочнице, так будет проще У вас media подключается до blocks/header, по этому правила из blocks/header перекрывают media сверху вниз в css пишите tag .class ... @media и не будет у вас подобных проблем  
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy