2012-11-07 4 views
1

페이지로드시 PHP로 채워지는 텍스트 입력 필드가 있습니다.PHP로 채워진 텍스트 필드는 JavaScript에 의해 변경되지 않습니다.

<?php 
$product_price = 10000; 
?> 

<input type='text' name='product_price' value='<?=$product_price?>' > 

제품 가격이 12000 미만인지 확인하는 JavaScript 코드가 있습니다. 그렇다면 경고를 보내 드리겠습니다. 여전히

왜 "12000 이상이어야 제품 가격"그 날 메시지를 표시하고,

if(product_price <= 12000){ 
    alert("product price must be above 12000"); 
} 

는 경고가 잘 작동,하지만 난 50000에 입력 필드 PRODUCT_PRICE의 값을 변경하면 문제는 JS는 내가 필드에 입력 한 값을 가져갈 수 없습니까? PHP 채워진 값이 변경되지 않는 이유는 무엇입니까?

+0

해결되었습니다. 감사합니다 – chandoo

답변

1

입력란의 내용은 문자열입니다. 더 입력 필드와 변수 사이의 바인딩이 없기 때문에 그것은, 12000

if(parseInt(product_price, 10) <= 12000){ 
    alert("product price must be above 12000"); 
} 

이것은 PHP 변수를 업데이트하지 않습니다 이하인지 확인하기 전에 변환 할 parseInt()를 사용합니다. JavaScript는 클라이언트에서 실행되는 반면 PHP 코드는 서버에서 실행됩니다. 사용자로부터 의견을 받으려면 form submit GET/POST 또는 Ajax for updating without reloading the page 중 하나를 사용해야합니다.

+1

* 항상'parseInt'의 기본 인수를 지정하십시오 :'parseInt (product_price, 10)'- 그렇지 않으면 선행 제로와 같은 것들은 값을 8 진수로 변환 할 때 문제를 일으 킵니다. – ThiefMaster

1

사용자가 키를 누를 때마다 javadript product_price 변수가 입력 필드의 현재 내용으로 업데이트되도록 입력 필드를 수정해야합니다.

<input type="text" name="product_price" onkeypress="product_price = this.value" value="<?=$product_price?>" > 

사용자 입력의 유효성을 검사하기 위해 keypress 이벤트를 처리하는 함수에 위임하는 것이 좋습니다.

<input type="text" name="product_price" onkeypress="updateProductPrice(this)" value="<?=$product_price?>" > 

function updateProductPrice(input) { 
    product_price = input.value; 
} 
관련 문제