добавление php-кодов в событие нажатия кнопки - PullRequest
0 голосов
/ 12 сентября 2009
<input type="button" name="continue" id="continue" value="Continue" onclick="<? 
            if($_POST['rules']==null) {
                echo "hello();";
                }
            elseif($_POST['rules']!=null) {
                echo "myRedirect();";
            }   

                 ?>" > 

У меня есть форма с текстовой областью. когда пользователь нажимает кнопку, когда текстовая область равна нулю, он должен выполнять функцию hello (), а если текстовая область не пуста, он должен выполнять функцию myRedirect (). функция hello () и myRedirect () генерируют разные диалоговые окна. но это не похоже на работу. что не так с этим кодом?

Ответы [ 6 ]

4 голосов
/ 12 сентября 2009

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

1 голос
/ 12 сентября 2009

Если вы просто проверяете значение поля, вам просто нужен Javascript ... Это должно работать нормально:

<script type="text/javascript">
function check(obj_id){
    var result = document.getElementById(obj_id).value;
    if(result == ""){
        is_null();
    }else{
        is_not_null();
    }
}

function is_null(){
    alert("null");
}

function is_not_null(){
    alert("not null");
}
</script>
<input type="text" id="test" />
<button onclick="check('test')">Test</button>

Передайте идентификатор текстового поля, которое вы хотите проверить, в функцию check (), и он находит, было ли что-либо введено в поле. Если это так, он вызывает функции «is_null ()» и «is_not_null ()», если в текстовом поле что-то есть.

1 голос
/ 12 сентября 2009

Я думаю, что это не будет работать вообще, потому что вы пытаетесь вызвать код PHP из javascript. Другими словами, PHP - это язык сценариев на стороне сервера, и вы пытаетесь выполнить код на стороне сервера, который необходимо отправить для выполнения.

Для достижения этой функциональности вы можете просто написать этот код

 if($_POST['rules']==null)
 {
  echo "hello();";
 }
 elseif($_POST['rules']!=null)
  {
  echo "myRedirect();";
 }

вверху страницы PHP, и вы получите то, что хотите. или введите тип ввода как «submit»

0 голосов
/ 12 сентября 2009
<script>
function hello(){}
function myRedirect(){}
function ifnullz(el){
  if($(el)!=0){
    hello();
  }else{
    myRedirect();
  }
}
function $(el){
   document.getElementByID(el).length; //.value?? idk.. something like that.
}
</script>

<input onlcick="ifnullz('lolz');">
<textarea id="lolz"></ta>
0 голосов
/ 12 сентября 2009

Вы смешиваете сторону клиента и сторону сервера? Это то, что вы ищете?

<?php
if($_POST['rules'] == null) {
    echo "hello";
} else {
    myRedirect();
}
?>

<input type="submit" name="continue" id="continue" value="Continue">
0 голосов
/ 12 сентября 2009

Вероятно, вам понадобится обратная передача на сервер, чтобы выполнить все, что вы хотите запустить в событии onclick.

Другой способ обойти это - AJAX .

...