JS

2014-04-29 1 views
0

나는 코드 선택 상자를JS

<select name="customerbilling_productname" id="mySelectBox" onchange="changeValue(this.value);" style="width:120px;"> 
    <option value="">Please Choose</option> 
    <option value="Type Custom">Type Custom</option> 
    <?php 
    $json_array = array(); 
    $stmt = $pdo_conn->prepare("SELECT * from prices "); 
    $stmt->execute(array()); 
    $records = $stmt->fetchAll(PDO::FETCH_ASSOC); 
    foreach($records as $result2) { 
     $product = $result2["product"]; 
     $json_array[$product] = $result2['retail']; 
     echo '<option value="'.$result2["product"].'">'.$result2["product"].'</option>'; 
    } 
    json_encode($json_array, JSON_FORCE_OBJECT); 
    ?> 
    </select> 

를 채 웁니다 그리고이 JS이 HTML/PHP 코드가 : 내가 드롭 다운 메뉴에서 옵션을 선택하면 그래서

<script> 
var json = <?php echo $json_array; ?>; 
function changeValue(myValue) { 
    document.getElementById("customerbilling_unitprice").value = json[myValue]; 
} 
</script> 

을 데이터베이스 billing_unitprice 텍스트 입력 값을 데이터베이스의 소매 열 값으로 채 웁니다.

드롭 다운에서 옵션을 선택하면 텍스트 입력에 정의되지 않은 것으로 표시됩니다. 데이터베이스의 전자 값

답변

2

당신은이 같은 JSON 인코딩하는 :

json_encode($json_array, JSON_FORCE_OBJECT); 

을하지만 당신은 '때로 믿을 수를 이것에

var json = <?php echo $json_array; ?>; 

그것을 아무에게나 할당하는 것.

그래서, 이렇게 :

$json_str = json_encode($json_array, JSON_FORCE_OBJECT); 

는 다음과 같이 자바 스크립트를 업데이트

var json = JSON.parse('<?php echo $json_str; ?>'); 

내가 PHP의 json_encode는 JSON 문자열을 반환하기 때문에 JSON.parse()은 뭐하는 거지 이유. 그런 다음이를 자바 스크립트의 객체/배열로 구문 분석해야합니다.

0

시도는이를 변경하려면 :

var json = '<?php echo $json_array; ?>'; 
+0

어떻게 작동합니까? 여기,'$ json_array'는 실제 php 배열이 아니겠습니까? 그래서 javascript 변수는 다음과 같이 끝날 것입니다 :'var json = 'Array';' – Latheesan