2011-09-18 2 views
0

자바 스크립트 :PHP 값을 Javascript에 삽입하는 방법은 무엇입니까?

var counter = 1; 
var limit = 5; 
function addInput(divName){ 
    if (counter == limit) { 
      alert("You have reached the limit of adding " + counter + " inputs"); 
    } 
    else { 
      var newdiv = document.createElement('div'); 
      newdiv.innerHTML = " <br><select name='vehicle[]' id = 'vehicle'><option value = ''>Vehicle "+ (counter + 1) +"</option><option value = '.$brand.' '.$name.'>'.$brand.' '.$name.'</option>"; 
      document.getElementById(divName).appendChild(newdiv); 
      counter++; 
    } 
} 

PHP/HTML :

<script type = "text/javascript" src="js/addinput.js"></script> 
    <form name="form1" method="POST" action="services.php" onsubmit="return valid()"> 
    <br><br><br><center> 
    <table class="form" border=1> 
    <tr> 
    <td class="head" colspan="2"  >Select Vehicle:</td> 
    </tr> 
    <tr ></tr> 
    <tr> 
    <td colspan="2" class="info"> 
    <div id="dynamicInput"> 
    <br><select name = "vehicle[]" id = "vehicle1"> 
    <option value = "">Vehicle 1</option>'; 
     include_once "vehicledbconnect.php"; 
     $queryveh = mysql_query("SELECT * FROM vehicletbl"); 
     while($fetch_2 = mysql_fetch_array($queryveh)) { 
     $brand = $fetch_2['vehbrand']; 
     $name = $fetch_2['vehname']; 
     echo '<option value = "'.$brand.' '.$name.'">'.$brand.' '.$name.'</option>'; 
     } 
    echo '</select>'; 
    echo '<input type="button" value="Add another vehicle" onClick="addInput(\'dynamicInput\');"></div>'; 

안녕하세요. 자바 스크립트에 PHP 값을 삽입 할 수 있습니까? 여기에 고객이 제출 버튼 (에코 ')을 클릭하면 새 드롭 다운 양식이 표시되는 프로그램이 있습니다. 그리고 나는 모든 쿼리 값 ($ queryveh = mysql_query ("SELECT * FROM vehicletbl");)을 포함하는 드롭 다운 폼을 원합니다. 내 기본 드롭 다운 양식에는 모든 쿼리 값이 표시됩니다. 제발 도와주세요. 나는 대답이 절망적이다. Javascript가 내 약점입니다. 고마워.

편집 :

newdiv.innerHTML = " <br><select name='vehicle[]' id = 'vehicle'><option value = ''>Vehicle "+ (counter + 1) +"</option>" + "<?php include 'vehicledbconnect.php'; $queryveh = mysql_query('SELECT * FROM vehicletbl'); while($fetch_2 = mysql_fetch_array($queryveh)) { $brand = $fetch_2['vehbrand']; $name = $fetch_2['vehname']; <option value = '.$brand.' '.$name.'>'.$brand.' '.$name.'</option> }?>"; 

이이 해결책이 될 수 있습니까? 해봤지만 작동하지 않습니다. 이것이 해결책 일 수 있다면 어쩌면 여기서 내 코드에 문제가있을 수 있습니다.

+0

나는 jQuery와 AJAX를 사용할 것입니다. PHP 호출을 호출하고 JSON 값을 반환 할 수 있습니다. 그런 다음 해당 값을 분석하고 드롭 다운 목록에 추가합니다. – webdad3

+0

가능합니다! – Ehtesham

+0

@JeffV AJAX와 Jquery를 사용하는 방법을 모른다. – glove

답변

-2

JavaScript는 클라이언트에서 평가를 얻습니다 .HTML과 마찬가지로. 동일한 방식으로 사용됩니다.

-> 네, 방금 (일반적으로 .PHP 파일 내에서) 한 최초의 PHP에 의해 평가되는 정의로 자바 스크립트에서 PHP를 사용

편집 : 당신이 경우

그냥 명확히하기 php에 의해 서버에서 자바 스크립트 내에서 값을 얻고 싶습니다. 당신은 danishgoel이 말한 것을보아야합니다. Ajax (Asynchronous JavaScript) .. - Rikudo Sennin이 링크를 disrespected 한 이후로, 또 다른 http://en.wikipedia.org/wiki/XMLHttpRequest .. 또는 더보기 당신을위한 대부분의 것들을 수행하는 자바 스크립트 프레임 워크에서 (fe jQuery)

+0

-1입니다. http://w3fools.com을 참조하십시오. –

+0

솔직히? .. 알지 못한다. 나는 그것을 들여다 볼 것이다. –

+0

@Rikudo : 슬픈 일이다. W3 학교는 잘못된 정보에도 불구하고 (모든 것이 가지고있는) 여전히 많은 사람들이 사용합니다. Promote JS는 초보자가 아닌 프로그래머를 위해 설계되었으므로 이륙하지 않았습니다. 페이지 디자인 (인터페이스)은 초보자가 필요로하는 것이 아니며 W3School이 정말로 필요로하는 것입니다. – vol7ron

0

자바 스크립트에서 서버 값은 AJAX를 사용하는 것입니다.

페이지를 새로 고칠 필요가 없다면 AJAX 없이도 가능하지만 원하는대로 생각하지 않습니다.

0

jQuery로드 함수를 사용합니다. 이것은 내가 당신을 위해 소집 할 수있는 가장 간단한 예입니다.

당신은 당신의 HTML 헤더에 jQuery를 ( http://docs.jquery.com/Downloading_jQuery를) 다운로드하고 포함해야합니다

:

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 

그런 다음 당신이 전화를 간단한 함수를 만들 수 있습니다; 귀하의 취향에 따라 onclick 또는 onchange로.

function reloadDropDown() 
    { 
     document.getElementById('dynamicInput').innerHTML = 'Loading ...'; 
     var v_name = document.formname.elementname.value; 
     $('#dynamicInput').load("dropdownload.php", { vehicle_name : v_name }); 
    } 

나는 이것을 통과 시키자. dropdownload.php는 '$ queryveh'드롭 다운 코드를 갖습니다. Javascript는 기본적으로 dropdownload.php에서 ID가 'dynamicInput'인 div로 이동합니다. javascript가 dropdownload.php를로드하면 드롭 다운로드에서 $ _POST [ 'vehicle_name']로 사용할 수있는 vehicle_name이라는 변수로 POST를 통해 변수를 보냅니다. php.

그래서 dropdownload.php는 다음과 같이 보일 수 있습니다.

<?php 
$queryveh = mysql_query("SELECT * FROM vehicletbl WHERE vehname = '{$_POST['vehicle_name']}'"); 

// collect the data and put it in to an Array I like to do this so I can check the array to make sure it has something in it if not return an error message but I will skip that for the purpose of this explanation. 

while($ucRow = mysql_fetch_array($queryveh, MYSQL_ASSOC)) array_push($resultsArray, $ucRow); 
?> 

<select name = "vehicle[]" id = "vehicle1"> 
<?php 
foreach ($resultsArray as $fetch_row){ 
    ?> 
     <option value = "<?php echo $fetch_row['vehbrand'].' '.$fetch_row['vehname'].'; ?>"><?php echo $fetch_row['vehbrand'].' '.$fetch_row['vehname']; ?></option> 
    <?php } ?> 
</select> 
?> 

나는 최종 결과에 확신이 없지만 기본 jQuery ajax 호출입니다. 당신이 그것을 이해할 수 있다면, 당신은 진정으로 역동적 인 웹 페이지/앱의 절반에이 분야에 대한 좀 더 연습을하고 있습니다.희망은 당신에게 갈 방향을 제공합니다 :

관련 문제