2012-04-30 3 views
1

POST를 통해 변수를 MySQL 데이터베이스에 삽입하기위한 쿼리와 함께 PHP 파일에 전달하는 JavaScript 함수 (이 포럼의 사용자가 친절하게 도와줍니다)가 있습니다.AJAX JavaScript 함수에 PHP 변수를 동적으로 전달합니다.

이 함수는 MySQL 데이터베이스에서 누출 된 일련의 2000+ 행에 대해 "onchange"로 호출됩니다. 나는 다음과 같이 각 양식 필드에 고유 한 이름/ID를 제공하기 위해 행의 ID를 사용 : 당신이 볼 수 있듯이

function insertAdvertiser() { 
var data = $('#<?php echo $AdvertisersSQLResult[id]?>dataid,#<?php echo $AdvertisersSQLResult[id]?>industry,#<?php echo $AdvertisersSQLResult[id]?>geolocation').serialize(); 
$.post('/database/InsertAdvertiserRelationship2.php', data); 
return false; 
} 

, 난 :

echo "=<select name='$AdvertisersSQLResult[id]geolocation' id='$AdvertisersSQLResult[id]geolocation' onchange = 'insertAdvertiser()'>"; 

자바 스크립트 기능은 다음과 같습니다 양식 id 값의 일부로 PHP 변수를 전달하려고합니다. 그러나 아직 채워지지 않은 변수가 없으면 섹션에 함수가 한 번만 기록되므로이 방법은 효과가 없습니다.

다른 말로하면,이 JavaScript 함수는 PHP 변수가 동적으로 전달되는 것을 사용하고 싶습니다. 자바 스크립트 함수에 PHP 변수를 전달하는 것에 대한 다른 스레드를 살펴 봤지만 자바 스크립트 함수가 매번 다른 PHP 변수를 사용하도록 변경되도록 동적으로 수행 할 수있는 방법에 대한 참조를 찾을 수 없습니다. 말이된다). 당신은 글로벌 자바 스크립트 변수를 만들고 스크립트에서 사용할 수 있습니다

답변

1

시스템에있는 모든 광고주에 대해 별도의 insertAdvertiser() 메소드가 필요하기 때문에 그렇습니다.

가 할이 것 할 수있는 더 좋은 방법 : 자바 스크립트 :

// This line turns your PHP array into a Javascript object 
var advertisers = <?php echo json_encode($AdvertiserSQLResult); ?>; 

function insertAdvertiser(id) { 
$.post('/database/InsertAdvertiserRelationship2.php', advertisers[id]); 
} 

// Try not to use attributes to bind events, use handlers like this instead. 
$(document).ready(function() { 
$('select').on('change', function() { 
    // Reads the advertiser id from the data attribute 
    insertAdvertiser($(this).data('advertiserid')); 
}); 
}); 

HTML :

<select data-advertiserid="<?php echo $AdvertiserSQLResult['id']; ?> class="advertiser-select">...</select> 

내가 뭔가를 간과 한 경우 내가 사과 있도록 함께 갔다 나는이 쓴 .

은 참조 :

+0

당신은 최고입니다. 고마워요 –

+0

사실, 미안 해요, 조금 잃어 버렸어요 ... 그래서 당신은 PHP를 루프 내에서 참조한 HTML을 넣어 양식을 스풀링, 맞습니까? ID는 실제로 양식에 표시되지 않는 숨겨진 필드로 사용됩니다. 그래서 나는 입력을 원하는 선택 메뉴를 위해 $ AdvertiserSQLResult [ 'industry']와 $ AdvertiserSQLResult [ 'geolocation']을 사용할 것입니까? 또한이 함수를 통해 여러 데이터 값 (예 : 산업 및 위치 정보)을 보내려면 어떻게해야합니까? 다시 한 번 감사합니다 –

+0

또한 PHP 스크립트 (InsertAdvertiserRelationship2.php)로 보내면 Firebug에서 POST 응답을 얻지 못합니다.해당 파일의 데이터를 어떻게 참조합니까? 다시 한번 감사드립니다. –

1

어떤 도움

감사합니다 ....

<script type="text/javascript"> 
    myVariable = <?php echo $x; ?>; 
</script> 

변수를 어딘가에 저장 한 다음 JavaScript를 통해 액세스 할 수 있습니다.

<input type="hidden" class="myVariable" value="<?php echo $x; ?>" 

<script type="text/javascript"> 
    var myVar = $('.myVariable').val(); 
</script> 

JavaScript로 데이터를 만든 후에는 무엇을하고 싶은지 할 수 있습니다.

관련 문제