Как отправить 2 значения в событии Javascript KeyUp - PullRequest
0 голосов
/ 14 ноября 2010

Я хочу использовать javascript для вычисления значений без нажатия на кнопку отправки. Использование события JavaScript onkeyup. Можно ли отправить 2 или более значений из HTML-формы в функцию JavaScript?

Это код для загрузки необходимых данных в таблицу:

echo "<input type=\"hidden\" name=\"ids[]\" value=\"$id\">"; 
echo "<input type=\"hidden\" name=\"qoh[]\" value=\"$qtyhand\">";   
echo "<td><input type=\"text\" name=\"qbuys[]\" id=\"qbuys\" value=\"$qtytbuy\"  onKeyUp=\"proc(this.value)\"></td>"; 

Я попробовал (что я только придумал), но не сработало, как это правильно сделать, это возможно?:

onKeyUp=\"proc(this.value && document.cartform.qbuys[].value);\"

И это javascript, который действует как посредник между формой и php-файлом, который вычисляет промежуточный итог:

function proc(str,str2)
{
if (str=="")
  {
  document.getElementById("compz").innerHTML="";
  return;
  }  
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("compz").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","compz.php?qbuys="+str&prodid="+str2,true);
xmlhttp.send();
}

Хотя я не совсем уверен, работает ли он, так как раньше я использовал только 1 параметр для функции.

Ответы [ 2 ]

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

Прежде всего, я бы рекомендовал использовать jQuery вместо использования собственного интерфейса AJAX. Это испробовано и протестировано и используется гигантами Интернета. Вот простой пример из документации jQuery, адаптированной к вашей структуре:

$('#compz').load('some_page.php');

Эта строка будет загружать любой контент, возвращаемый some_page.php, в ваш compiv DIV. Итак, давайте перепишем вашу функцию:

proc = function(str1) {
    var str2 = $('#FormVariableThatContainsProdID').value;
    $('#compz').load('compz.php?qbuys=' + str1 + '&prodid=' + str2);
}

Таким образом, ваш PHP остается неизменным.

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

Запятая разделяет функциональные параметры.

onKeyUp=\"proc(this.value, document.cartform.qbuys[].value);\"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...