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

  • Обсуждения

    • <div class="modal-body"> <?php if (!empty($_SESSION['cart'])): ?> <?php else: ?> <p>Корзина пуста...</p> <?php endif; ?> <?php if (!empty($_SESSION['cart'])): ?> <table class="table"> <thead> <tr> <th scope="col">Изображение</th> <th scope="col">Название</th> <th scope="col">Цена</th> <th scope="col">Количество</th> </tr> </thead> <tbody> <?php foreach ($_SESSION['cart'] as $id => $item): ?> <tr> <td><a href="#"><img class="br-3" src="images/<?= $item['img'] ?>" alt="<?= $item['title'] ?>"></a></td> <td><p><?= $item['title'] ?></p></td> <td><?= $item['price'] ?></td> <td> <?= $id ?> <a id="min-to-cart" href="?cart=minus&id=<?= $id ?>" class="min-to-cart minus-btn badge-light minus-to-cart" data-id="<?php echo $id ?>"></a> <?= $item['qty'] ?> <a id="plus-to-cart" href="?cart=plus&id=<?= $id ?>" class="plus-btn badge-light plus-to-cart" data-id="<?php echo $id ?>"></a> <a href="#" class="delete-btn remove-from-cart badge-light" data-id="<?php echo $id ?>"></a> <button type="button" class="btn delete-btn remove-from-cart" id="remove-from-cart" data-id="<?php echo $id ?>"></button> </td> </tr> <?php endforeach; ?> <tr> <td colspan="4" align="right">Товаров: <span id="modal-cart-qty"><?= $_SESSION['cart.qty'] ?></span> <br> На сумму: <?= $_SESSION['cart.sum'] ?> руб.</td> </tr> </tbody> </table> <form action="telegram.php" method="POST"> <legend>Введите имя, номер телефона и адрес:</legend> <div class="form-group"> <input type="text" class="form-control" id="" name="name" placeholder="Введите имя"> </div> <div class="form-group"> <input type="text" class="form-control" id="" name="phone" placeholder="Введите телефон"> </div> <div class="form-group"> <input type="text" class="form-control" id="" name="address" placeholder="Введите адрес"> </div> <div class="form-group"> <textarea name="msg" placeholder="Ваш комментарий..."></textarea> </div> <button type="submit" class="btn btn-success">Оформить заказ</button> <button type="button" class="btn btn-danger" id="clear-cart">Очистить корзину</button> </form> <!--<script src="common/scripts.js"></script>--> <?php endif; ?> </div> <div class="modal-footer"> <?php foreach ($_SESSION['cart'] as $id => $item): ?> <a href="#" class="delete-btn remove-from-cart badge-light" data-id="<?php echo $id ?>"></a> <?php endforeach; ?> </div>               функция полной очистки работает, видимо потому что этот класс есть изначально, а не появляется из-за сессии   $('.add-to-cart').on('click', function (e){ e.preventDefault(); let id = $(this).data('id'); $.ajax({ url: 'cart.php', type: 'GET', data: {cart: 'add', id: id}, dataType: 'json', success: function (res) { if (res.code == 'ok') { showCart(res.answer); } else { alert(res.answer); } }, error: function () { alert('Error'); } }); }); $('#cart-modal .modal-cart-content .remove-from-cart').on('click', function (e){ e.preventDefault(); let id = $(this).data('id'); console.log(id); }); $('#get-cart').on('click', function (e){ e.preventDefault(); $.ajax({ url: 'cart.php', type: 'GET', data: {cart: 'show'}, success: function (res) { showCart(res); }, error: function () { alert('Error'); } }); }); $('#cart-modal .modal-cart-content').on('click', '#clear-cart', function (){ $.ajax({ url: 'cart.php', type: 'GET', data: {cart: 'clear'}, success: function (res) { showCart(res); }, error: function () { alert('Error'); } }); });
    • Например, добавить  .wrapper li {     clear: both; } http://jsfiddle.net/e3f9ozLr/
    • Добрый день.На сайте после удаления переводчика gtranslate появилась такая вот проблема:при переадресации с http://tto-studio.com.ua/ на https://tto-studio.com.ua/ru/ вылетает такая вот страница <strong>https://tto-studio.com.ua/wp-content/plugins/gtranslate/url_addon/gtranslate.php?glang=ru&gurl=</strong>Что мне делать, как это можно исправить? А точнее — на странице https://tto-studio.com.ua/ru/ в адресной строке я удаляю букву s с http s:// и нажимаю enter. И заместь того чтобы меня кинуло на страницу — https://tto-studio.com.ua/ru/ меня кидает на — https://tto-studio.com.ua/wp-content/plugins/gtranslate/url_addon/gtranslate.php?glang=ru&gurl=
    • Ты в стрелочной функции из-за того что у тебя одно выражение опустил { }. А это ведет к неявному возврату результата выражения.
    • Здравстуйте, каким образом можно получить доступ к Mathcad Application Server для получения доступа к документам и функциям Mathcad через Интернет. Может быть, есть другой способ связать интернет с Mathcad ?
×
×
  • 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