2014-01-19 4 views
0

У меня есть JavaScript, который обрабатывает событие onkeydown ввода текста. Как передать значение из этой функции ввода или javascript в переменную php? Я не уверен, что форма может работать, потому что функция javascript вызывает другую функцию Ajax в другом местеКак передать значение из функции JavaScript в переменную PHP?

<?PHP 
    $valueOfInput = //how to assign this variable to value from text input ?? 
    ?> 

    <html> 
    <head> 
    <script> 
    function myFunc(e){ 
    if (e.keyCode == 13) 
    { 
     pass_data_to_Ajax(); 
    } 
    } 
    </script> 

    </head> 

<body> 
<div >   
    <input type="text" id = "lname" value="" onkeydown="myFunc(event)"/> 
</div> 

</body> 
</html> 
+3

вы должны понимать разницу? между серверным кодом и кодом на стороне клиента. – SLaks

+0

Возможный дубликат [Ссылка: Почему код PHP (или другой сервер) в моем Javascript не работает?] (Http://stackoverflow.com/questions/13840429/reference-why-does-the-php-or- другой-серверный код-в-мой-на JavaScript не-УНР) – Quentin

ответ

0

Легкий, но зависит от того, что именно вы хотите сделать. Вот несколько примеров фрагментов коды:

<?php 
if(!empty($_POST['lname'])) { 
    $valueOfInput = $_POST['lname']; 
    die(json_encode(array('status' => 'success', 'lname' => $valueOfInput))); 
} 
?> 
<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
    </head> 
    <body> 
     <input type="text" id="lname" name="lname" value="" /> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#lname").on("keypress", function() { // waiting for keypress event to be fired 
        setTimeout(function() { // delay to have the key value inserted into input, and affect value param 
         $.post(document.location.href, { lname: $("#lname").val() }, function(data) { // sending ajax post request 
          console.log(data); 
         }); 
        }, 50); 
       }); 
      }); 
     </script> 
    </body> 
</html> 

Вы не писали о каких-либо рамках JS, но я предположил, что это будет проще для вас (для начинающих), чтобы начать с JQuery или какой-либо другой структурой, которые могут помочь вам некоторые абстракции вокруг функций JS.

Вот краткое описание того, что происходит:

  1. сайт ждет, пока вы начнете писать что-либо на вход (так же, как в вашем коде)

  2. сценарий обработки набрав событие (нажатие клавиши) и жду, пока значения вставляются в ваш вход

  3. скрипта посылает запрос Ajax с входным значением, как пары

  4. PHP код принимает значение от $ _POST суперглобального массива, и вставляет его в PHP переменной

  5. PHP код отправляет ответ на сценарий JS, что все хорошо, и этот ответ напечатан в вашей консоли (вы можете делать все, что вы хотите - надо с ним)

Выпуск: Он будет посылать много запросов на сервер, поэтому рассмотрим более подход (change событие вместо keypress)

0

Простая! Используйте HTTP-запрос и создайте переменную GET, поместив значение в URL-адрес или создайте переменную POST, поместив значение в заголовки запроса. Это может быть выполнено с помощью HTML-формы или с помощью AJAX или javascript-переадресации или нескольких других методов.

Вы можете в PHP использовать массивы: $_GET, $_POST или $_REQUEST, чтобы получить ваши переменные.

например: $_GET['my_var']

Смежные вопросы