Справка по переменным PHP Javascript - PullRequest
0 голосов
/ 28 ноября 2010

Есть ли способ получить значение текстового поля html без использования GET, POST или REQUEST? В качестве альтернативы, есть ли способ получить значение поля в той же форме или на странице, где.

Это работает с прямыми значениями, такими как «james», «system» и так далее. Единственная проблема заключается в том, как заставить его работать со значениями HTML-полей

как:

<input type = "submit" onclick = "
<?php $username = "kut"; 
$result = checkname($username); 
if($result) 
{
?> alert("success"); <?php 
} 
else {?> alert("failed"); <?php 
}?> 
">

Как я могу заменить "kut" значением текстового поля на id = "username"?

<?php $username = "?>document.getElementById('username').value;<?php"?>

или что-то в этом роде ... ???

Короче говоря, мне нужно получить значение поля html, где на той же странице внутри функции javascript используется PHP ... как в приведенном выше javascriptFunction (), функция

Ответы [ 3 ]

2 голосов
/ 28 ноября 2010

У вас есть фундаментальное недопонимание того, как работает архитектура клиент-сервер.

PHP может быть запущен за тысячи миль, даже на расстоянии нескольких дней от места, где и когда JavaScript работает.

Сначала PHP генерирует целую страницу, весь HTML, весь исходный код JavaScript (не выполнен), а затем, после завершения работы PHP, браузер запускает JavaScript.

Эти два не могут быть смешаны вместе, как вы хотели, хотя это может показаться в исходном коде PHP.

Несмотря на то, что вы можете снова общаться с сервером, используя AJAX или аналогичный, вы, вероятно, должны сначала понять, как работает архитектура клиент-сервер, и попытаться решить проблему без AJAX (например, обработать все это на стороне сервера или все на стороне клиента ).

1 голос
/ 28 ноября 2010

Вы не можете напрямую вызывать функцию PHP в JavaScript. Вы можете установить значение JavaScript из php до загрузки страницы через echo. PHP выполняется на сервере, а JavaScript - на стороне клиента.

0 голосов
/ 28 ноября 2010

1> Я предлагаю использовать jQuery для обработки части Ajax.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script>
    function check_user(){
      var user_el=document.getElementById('username');
      if(!user_el){ return false; }
      var username=user_el.value; // this could all be replaced with $('username').val()
      $.getJSON('check_var.php',{"user":username},function(data){
            if(data.result=='error'){ alert('something was wrong with the PHP stuff'); }
            alert(data.userstatus);
            });
      }
 </script>

2> На стороне PHP, как check_var.php, вам нужен скрипт, который принимает ввод имени пользователя, проверяет БД,и отправляет результат в виде данных JSON.

<?php
if(!isset($_GET['user']){ exit; }

$username=preg_replace('#['^\w\d]#','',$_POST['user']);

//do your database query. I assume you have that part all set.
//since I'm not filling in all of that, you'll need to fix this next part to work with your system
//let's pretend it's like $found=check_user($username);
//be sure to use mysql_real_escape_string or prepared statements on the $username var since you're working with user input

$status=$some_db_error ? 'error' : 'success';

$results=array('result'=>$status,'userstatus'=>$found);
header('Content-Type: application/json');  
echo json_encode($results);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...