2012-08-30 5 views
0

PHP 옵션 값 변수 $ option_value [ 'price']를 문자열로 자바 스크립트에 전달할 수있는 방법이 있나요? 다른 옵션이 선택 될 때마다 자바 스크립트가 '업데이트'됩니다. 새로운 값을 가진 문자열. 나는 onchange()를 시도했지만 잘못하고 있어야합니다. 내 실수는 PHP가 서버 측이고 자바 스크립트가 클라이언트 측이기 때문에 확실하지만 두 사람이 내가 원하는 방식으로 행동하게하는 방법을 알지 못합니다.자바 스크립트로 PHP 변수 전달 및 업데이트

<?php if ($options) { ?> 
    <?php foreach ($options as $option) { ?> 
    <?php if ($option['type'] == 'select') { ?> 
    <span id="option-<?php echo $option['product_option_id']; ?>" class="option"> 

<select name="option[<?php echo $option['product_option_id']; ?>]" onchange="getIt(this)"> 
     <?php foreach ($option['option_value'] as $option_value) { ?> 
     <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> 
     <?php if ($option_value['price']) { ?> 
     <?php $option_value['price']; ?> 
     <?php } ?> 
     </option> 
     <?php } ?> 
     </select> 
</span> 

나는 시도했다 :

<script type="text/javascript"> 
function getIt(elm) { 
var val = elm.options[elm.selectedIndex].text; 
window.alert(val); 
} 
</script> 

등처럼

<script type="text/javascript"> 
function getIt() { 
var val = "<?php $option_value['price']; ?>"; 
window.alert(val); 
} 
</script> 
+1

'onchange'는 내게 적합합니다. http://jsfiddle.net/NYJUm/. 'getIt' 함수를 어디에 추가합니까? –

+0

코드 하단에 있습니다. PHP 변수가 배열에 있기 때문에 문제가 있습니다. 나는 ''' – Travis

답변

1

다음은 어떻게 수행 할 수있는 예입니다. 당신이해야 할 일은 다음과 같습니다

  1. 내가 구글 계정에서 jQuery를 사용하는 코드 (통지를 분석 당신은 당신의 웹 사이트에 jQuery를 설치하고 대신 구글의 하나의 하나를 사용 어떤 시점에서 필요합니다
  2. .. .이 예에서처럼 보이는, 그래서

당신의 fruits 배열을 구축 내가 여기서 일하는 당신이 표시됩니다 페이지를 준비했습니다 :. http://jsfiddle.net/7uudp/ 다음

가 포함 된 무엇을이 예제가하는 것을 알 너를 사용하지 마라. 변수. 당신은 그들이 원하는/원하는 방식으로 사용해야합니다. 또한 entry_fruit을 선택하여 기본 선택 방법을 선택하는 방법을 보여줍니다. 희망이 도움이 될 것입니다.

<html> 
<head> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript"> 

fruits = [{n:"apple",p:1},{"n":"strawbery",p:3}]; 
entry_fruit="strawbery"; 

function build_select(select,list,which) 
{ 
    $.each(list, function(i,v){ 
     var selopt="" ; 
     if (v.n == which) selopt="selected" ; 
     $(select).append("<option "+selopt+" value="+i+">"+v.n+" - $"+v.p+"</option>"); 
    }) ; 
} 

$(document).ready(function(){ 
    build_select($("select[name=fruits]"),fruits,entry_fruit); 
    $("select[name=fruits]").change(function(){ 
     alert("Price is $" + fruits[$(this).val()].p); 
    }) ; 
}) 

</script> 
</head> 
<body> 
<select name="fruits"></select> 
</body> 
</html> 
+0

이제 내 일은 내 PHP 코드를 과일로 가져 오는 방법을 찾는 것입니다. 맞습니까? – Travis

+0

예. 즉 (내가 그것을 포맷 할 수 없습니다 같은 것 (그래서 새로운 각 줄 끝에서 NL을 넣어) 과일 = [NL NL ] 괜찮아 NL – Grzegorz

+0

, 내가 ' – Travis

1
<script type="text/javascript"> 
function getIt() { 
var val = "<?php echo $option_value['price']; ?>"; 
window.alert(val); 
} 
</script> 

를? 네가 "에코"를 잊은 것 같아. 내 이전 항목을 해지 좋아

편집 -

<script type="text/javascript"> 
var val = "<?php echo $option_value['price']; ?>"; 
function getIt(elm) { 
    val = elm.options[elm.selectedIndex].text; 
    window.alert(val); 
} 
</script> 
+0

위를 편집, 그런 것을 시도? – Tynarus

+0

경고는 $ option_value [ 'product_option_value_id']입니다. . 텍스트는 무엇을 울리는 지 잡아 낸다. option_value [ 'price']가 울리지 않으므로 아무 것도하지 않습니다. – Travis

1

. 당신이 당신의 option_value['price']

지금 yuou는 조금 다른 방식으로 데이터를 정렬 할 필요가 일치하는 경우

은 무엇 당신이해야 할 것은 당신의 <option> 요소에 selected 키워드를 추가하는 것입니다. 자바 스크립트에서 $option_value['product_option_value_id']$option_value['price'];으로 매핑 할 배열을 준비합니다. <select>을 만들 때 각 $option_value['product_option_value_id']의 가격이 처음에 php에서 제공된 값과 일치하는지 확인하십시오.

getIt은 <option value="___"> 값을 취하여 해당 맵에서 찾은 다음 alert() 창을 사용하여 사용자에게 표시합니다.

+0

나를 지나쳐라. 오픈 코드 코드를 변경하고 있습니다 ... 그래서 당신이 말한 대부분은 그리스어입니다 ... 어쨌든, 시작하려면 옵션을 선택하는 방법을 찾으려는 것으로 시작해야합니다. 나는 내가 할 수있는 것을 보게 될 것이고, 나는 더 많은 것을 위해 돌아올 것이다. 감사. – Travis

+0

나는 밖으로 내 머리 위로 방법입니다. 이것을 시작하는 방법에 대한 도움이 필요하십니까? – Travis

관련 문제