2010-03-26 4 views
3

У меня есть простая проблема, но независимо от того, что я пытаюсь, я не вижу, чтобы заставить ее работать. У меня есть форма на php-странице, и мне нужно проверить значение qty в моей форме, чтобы она не превышала $ qty (значение выведено из mySQL) и не меньше нуля. Звучит просто - хм, хотелось бы ... У меня было это, проверяя, было ли значение числовым, и в моих попытках сделать эту работу я даже сломал это - не хорошее утро ...!Проверка формы с использованием Javascript внутри PHP

Вот надрез моего JavaScript Fn:

<script type='text/javascript'> 
    function checkQty(elem){ 
     var numericExpression = /^[0-9]+$/; 
     if(elem.value.match(numericExpression)){ 
       return true; 
      }else{ 
       alert("Quantity for RMA must be greater than zero and cannot be more than the original order!"); 
       elem.focus(); 
       return false; 
     } 
    } 
    </script> 

Функция вызывается из кнопки отправки, OnClick:

<input type="submit" name="submit" onclick="checkQty(document.getElementById('qty')";"> 

Я пробовал:

var numericExpression = /^[0-9]+$/; 
if(elem.value.match(numericExpression) || elem.value < 0 || elem.value > <? int($qty) ?>){ 

Нет кости .... HELP!?!

+4

Java! = JavaScript – Gordon

+0

тегов изменился, хотя тип = "текст/javascript..lol! – Mikey1980

+0

Mikey, как эта Java связана? Почему вы отменили изменение тега? Что-то мы все не видим? –

ответ

1

Возможно, попробуйте просмотреть источник страницы и проверить, не распечатано ли значение $ qty.

Также я думаю, вам нужно изменить или (||) на a и (& &) на основе оригинального оператора if, иначе он пропустит лимитные проверки.

Также эхо переменная, чтобы распечатать ее.

т.е.

var numericExpression = /^[0-9]+$/; 
if(elem.value.match(numericExpression) && elem.value < 0 && elem.value > <? echo $qty ?>){ 
+0

также, остерегайтесь сокращенного открытого PHP-тега '

+1

не должно быть на самом деле ''? Думаю, это должно произойти. –

+0

Я, хотя это сработало .. но теперь, если $ qty и form qty оба равны 1, он выдает предупреждение - я так смущен: s – Mikey1980

0

Вы пробовали?

<input type="submit" name="submit" onclick="return checkQty(document.getElementById('qty'));"> 
+0

@ c0mrade, только что сделал - спасибо, но все равно нет кости :( – Mikey1980

+1

Я думаю, вы имеете в виду:

+0

@Will Morgan Да ошибка, которую я не видел, исправлено сейчас tnx – ant

0

Вам просто нужно сделать значение PHP доступны для Javascript, например,

<script type='text/javascript'> 
function checkQty(elem, max_value){ 
    if(parseInt(elem.value)>0 
     && (parseInt(elem.value)<=max_value)){ 
      return true; 
    }else{ 
      alert("Quantity for RMA must be greater than zero and less than original order!"); 
      elem.focus(); 
      return false; 
    } 
} 
</script> 
... 
<?php 
    $max_value=(integer)method_of_fetching_max_value(); 
    print "<input type='submit' name='submit' 
      onclick='checkQty(document.getElementById(\"qty\", $max_value))'> 
    "; 
?> 

C.

+0

WOW! Мне нравится этот подход - однако мой HTML на этой странице чист и в основном PHP бесплатный - проще для нашего дизайнера, но будет использовать этот для других скриптов, идущих вперёд! KUDOS !! – Mikey1980

+0

Я пробовал ваш метод и не купил ... если $ qty и qty формы равны 1, он выдает ошибку. – Mikey1980

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