2013-08-12 2 views
0

Я пытаюсь создать кнопку в php и увеличить или уменьшить ее значение (внутри ввода текста) при щелчке.Функция Javascript внутри php

<?php 

echo "<script> 
    function inc(elem) 
    { 
     x = elem.value; 
     //alert('dsadasdasdsadasdas'); 
     if(x<31) 
     { 
     x= x+1; 
     } 
     alert(x); 
     elem.value = x; 
    } 
    </script>"; 

      echo '<form action="tziros.php" method="post">'; 
      echo '<input type="text" value="1" name="tziros_imeras">'; 
      echo '<br>'; 
      //echo '<input type="button" value="ADD +" onClick="inc(document.getElementById("tziros_imeras"))">'; 
      echo '<input type="button" value="ADD +" onClick="inc(document.getElementById(\'tziros_imeras\'))">' 
      //echo '<input type="button" value="DEC -" onClick="dec();">'; 
      echo '<input type="submit" name="submit_tziros_meras" value="OK">'; 
      echo '</form>'; 
?> 

Проблема в том, что javascript не работает вообще.

EDIT: после прочтения ваших ответов я пришел с этим: ЯШ:

function inc(elem) 
     { 
     elem.value++; 
     } 

и по форме:

echo '<input type="text" value="1" id="tziros_imeras" name="tziros_imeras">'; 

Так что теперь, наконец, в JS работает.

+0

Почему вы вкладываете все это в PHP? – putvande

+1

Стилистическая заметка: если вы выводите несколько строк HTML или Javascript, выходите из режима??> 'PHP или используете строку HEREDOC. – mario

+0

Я не вижу элемент с указанным id –

ответ

1
  • Вы ищете tziros_imeras по ID (getElementByID), но у вас есть только name свойство установлено до tziros_imeras

  • вы только метод inc() - вы отсутствующей метод dec()

и самое главное:

  • вы приращением x, которая является локальной переменной (это не влияет на фактический элемент), вы должны сделать вместо этого:

    elem.value + = 1;

+0

Я знаю, что он пытается исправить сначала инквизицию –

+0

@ ΒασιληςΙωσηφιδης проверить последняя пуля! – alfasin

0

Обновите PHP, чтобы использовать эту форму, чтобы это было легче читать и отлаживать:

echo reference

echo <<<END 
content here will be printed 
multiple lines! 
END; 

Я не уверен, что я верю, что это не «работает». Вставьте оповещение в свой JavaScript для проверки.

alert('I am alive'); 
+0

, что у него есть вопрос? –

+0

Ничего конкретного, но это облегчает чтение (хотя выключение PHP полностью было бы еще проще): так что это должен быть комментарий, а не ответ –

0

Эта часть кода:

echo '<input type="button" value="ADD +" onClick="inc(document.getElementById("tziros_imeras"))">'; 

должно быть так:

echo '<input type="button" value="ADD +" onClick="inc(document.getElementById(\'tziros_imeras\'))">'; 

JS быть выводимый было так:

onClick="inc(document.getElementById("tziros_imeras"))" 

Который, как вы заметили, испортил кавычки. Это то, что заставляло JS не запускаться (загляните в консоль вашего браузера, и вы также увидите ошибки).

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

+0

Я переключил линию с вашей, но все же предупреждения, которые я не запускал. –

+1

Обратите внимание, что я сказал, что у вас все еще есть ошибки JS. Другая проблема заключается в том, что вы пытаетесь использовать document.getElementById, но tziros_imeras является ИМЯ текстового поля. –

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