За последние 24 часа нас посетили 20084 программиста и 1577 роботов. Сейчас ищут 2054 программиста ...

передать зн-е переменной в $_POST без кода стра странийцы

Тема в разделе "JavaScript и AJAX", создана пользователем teh5h, 26 мар 2015.

  1. teh5h

    teh5h Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    6
    Симпатии:
    0
    Код (Text):
    1. function send()
    2. {
    3. var o = $('#o').val()
    4.        $.ajax({
    5.                 type: "POST",
    6.                 url: "index.php",
    7.                 data: "o="+o,
    8.         success: function(o){alert(o);
    9.    }
    10.                
    11.         });
    12.  
    13. }
    Код (Text):
    1. <form method="post" action="index.php">
    2.     <input id="o" type="text" name="o" value="4156"><br>
    3. <input type="button" onclick="send();" value="Отправить" />
    4. </form>
    у меня выодится во всплывающем окне полный код страницы и передаваемое значение в конце, а мне нужно просто получить в $_POST['o'] значение переменной "o" без кода всей страницы и перезагрузки страницы. Знаю, что дело в success, но не знаю как правильно написать. Подскажите, пожалуйста.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Смотри документацию по jquery http://api.jquery.com/jquery.ajax/

    Код (PHP):
    1. var request = $.ajax({
    2.   url: "script.php",
    3.   method: "POST",
    4.   data: { o : 'test' },
    5.   dataType: "html"
    6. });
     
  3. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Re: передать зн-е переменной в $_POST без кода стра странийц

    К сожалению в переменной " o " у вас приходит все, что на главной странице, этого не избежать.
    Если бы вы сделали отдельный файл в котором вернули бы только $_POST, то да, а так не... не канает такое, ответ в js приходит от сервера полностью.
     
  4. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: передать зн-е переменной в $_POST без кода стра странийц

    В запросе, передаваемом на сервер, можно прокинуть флаг, мол это ajax, бро. Тогда можно, по факту наличия этого флага в теле запроса, обрабатывать только то, что нужно и отсылать только то, что хочется. А если флага нет, то тогда всю страницу процессить. Либо да, слать запрос на отдельный скрипт.

    Так или иначе это решаемая задача. Просто нужно выбрать правильное архитектурное решение для нее.
     
  5. teh5h

    teh5h Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    6
    Симпатии:
    0
    Re: передать зн-е переменной в $_POST без кода стра странийц

    Тоже подумал про вариант с отдельным файлом. И кстати такой вариант меня вполне устраивает.
    Вопрос только в том, как можно увидеть, что значение в переменную $o все таки занеслось в другом файле?
    Вывод переменой на экран echo $o конечно есть, но выводится значение NULL, если допустим внешний файл с переданным значением подключить через include.
     
  6. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: передать зн-е переменной в $_POST без кода стра странийц

    Если запрос пришел и если вы записали переменную, то она записана, можете быть уверены.
     
  7. teh5h

    teh5h Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    6
    Симпатии:
    0
    Re: передать зн-е переменной в $_POST без кода стра странийц

    А кто то сталкивался с таким?
    При выводе значения переменной выводится число 1360008 в строке success, вместо любых значений input. Было все нормально, пока в data не добавил вторую переменную. Втора переменная приходит, а вот первая теперь становится NULL.
    Код (Text):
    1. <script>
    2. $(document).ready(function () {
    3.         $('.button').click(function() {
    4.             var val=$('#o').val();
    5.             var zn=$('#a').val();
    6.             $.ajax({
    7.                 type:"POST",
    8.                 data:{o:val,k: zn},
    9.                 url:"test.php",
    10.                 dataType:"json",
    11.                 success: function(data){
    12.                     alert(data);
    13.                 }
    14.             });
    15.         });
    16.     });
    17. </script>
     
  8. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: передать зн-е переменной в $_POST без кода стра странийц

    1) Которая из них вторая, которая первая?
    2) Которая становится NULL?
    3) А на стороне сервера обработку второй переменной не забыли сделать?
     
  9. teh5h

    teh5h Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    6
    Симпатии:
    0
    Re: передать зн-е переменной в $_POST без кода стра странийц

    Значение переменной
    Код (Text):
    1. o:val
    стало равняться null
    на стороне сервера не забыл. По одной переменной все нормально, а при передаче двух происходят глюки
    Код (Text):
    1. $o=json_encode($_POST[o']);
    2. $k=json_encode($_POST['k']);
     
  10. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: передать зн-е переменной в $_POST без кода стра странийц

    Воу. Вы уверены, что знаете, что делаете?
    Посмотрите, что вам приходит в POST:

    var_dump($POST);
     
  11. teh5h

    teh5h Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    6
    Симпатии:
    0
    Re: передать зн-е переменной в $_POST без кода стра странийц

    Значение в переменные javascript попадает (проверил alert'ом).
    Значение переменной var_dump($POST); не смог отобразить на экране, но при сохранении в файл первая переменная принимает значение null, вторая переменная с нормальными данными.
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: передать зн-е переменной в $_POST без кода стра странийц

    var_dump($_POST); так проверя?
     
  13. teh5h

    teh5h Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    6
    Симпатии:
    0
    Re: передать зн-е переменной в $_POST без кода стра странийц

    Проверял так
    Код (Text):
    1. echo "Значение=".var_dump($_POST);
    , но даже слово значение не высветилось.
    Пытался проверить подключив файл с куда передаются переменные $_POST в основной файл с формой html
    Код (Text):
    1. <?php
    2. include "test.php";
    3. ?>
    Можно я еще раз покажу Javascript код, а вы посмотрите? Может все таки где то ошибка.
    Код (Text):
    1. $(document).ready(function () {
    2.         $('.button').click(function() {
    3.             var val=$('#o').val();
    4.             var k=$('#k').val();
    5.             $.ajax({
    6.                 type:"POST",
    7.                 data:{o:val},
    8.                 data:{k:k},
    9.                 url:"test.php",
    10.                 dataType:"json",
    11.             });
    12.         });
    13. });
    В данном коде наконец то стала передаваться первая переменная
    Код (Text):
    1. data:{o:val},
    , а вот
    Код (Text):
    1. data:{k:k},
    приняла значение null. Жесть какая то.

    Добавлено спустя 7 минут 12 секунд:
    Re: передать зн-е переменной в $_POST без кода стра странийцы
    УРА, получилось. В JS написал
    Код (Text):
    1. data:{o:val,k:k},
    вместо
    Код (Text):
    1.  data:{o:val},
    2.                data:{k:k},
    и сразу первая со второй переменной сохранились.