将PHP变量动态传递给AJAX JavaScript函数

将PHP变量动态传递给AJAX JavaScript函数,php,javascript,ajax,forms,variables,Php,Javascript,Ajax,Forms,Variables,我有一个JavaScript函数,这个论坛上的用户热情地帮助我构建了这个函数,它通过POST将变量传递到PHP文件,并带有一个查询,用于将数据插入MySQL数据库 对于从MySQL数据库中吐出的一系列2000多行,在更改时调用该函数。我使用行的ID为每个表单字段指定一个唯一的名称/ID,如下所示: echo "=<select name='$AdvertisersSQLResult[id]geolocation' id='$AdvertisersSQLResult[id]geolocati

我有一个JavaScript函数,这个论坛上的用户热情地帮助我构建了这个函数,它通过POST将变量传递到PHP文件,并带有一个查询,用于将数据插入MySQL数据库

对于从MySQL数据库中吐出的一系列2000多行,在更改时调用该函数。我使用行的ID为每个表单字段指定一个唯一的名称/ID,如下所示:

echo "=<select name='$AdvertisersSQLResult[id]geolocation' id='$AdvertisersSQLResult[id]geolocation' onchange = 'insertAdvertiser()'>"; 
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;
}
JavaScript函数如下所示:

echo "=<select name='$AdvertisersSQLResult[id]geolocation' id='$AdvertisersSQLResult[id]geolocation' onchange = 'insertAdvertiser()'>"; 
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;
}
如您所见,我试图将PHP变量作为表单id值的一部分传递。但是,这不起作用,因为函数只在节中写入页面一次,而没有填充任何变量

换句话说,我想让这个JavaScript函数利用动态传递给它的PHP变量。我看过其他关于将PHP变量传递给JavaScript函数的线程,但是我找不到任何关于如何动态传递的参考,比如JavaScript函数每次都会更改为使用不同的PHP变量(如果有意义的话)


感谢您的帮助…

您可以创建一个全局JavaScript变量并在脚本中使用它

<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中保存数据后,您可以使用它做任何您想做的事情。

是的,因为系统中的每个广告客户都需要一个单独的insertAdvertiser方法

更好的方法是: Javascript:

// 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:

我边写边写,所以如果我忽略了什么,我向你道歉

见:


事实上,对不起,我有点迷路了。。。所以我在后台打印表单时,将您引用的HTML放在我的PHP while循环中,对吗?ID实际上是一个隐藏字段,不会出现在表单中。因此,我将使用$AdvertiserSQLResult['industry']和$AdvertiserSQLResult['geolocation']作为我想要输入的选择菜单?此外,如何通过此功能发送多个数据值,即行业和地理位置?再次感谢您,当我将其发送到我的PHP脚本InsertAdvertiserRelationship2.PHP时,我在Firebug中没有收到任何POST响应。如何引用该文件中的数据?再次感谢。