我有一个JavaScript函数(这个论坛上的用户慷慨地帮助我构建),它通过POST将变量传递给PHP文件,并带有用于将数据插入MySQL数据库的查询。
对于从MySQL数据库中吐出的一系列2000多行,该函数被“onchange”调用。我使用行的ID为每个表单字段赋予唯一的名称/ ID,如下所示:
echo "=<select name='$AdvertisersSQLResult[id]geolocation' id='$AdvertisersSQLResult[id]geolocation' onchange = 'insertAdvertiser()'>";
JavaScript函数如下所示:
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变量(如果是有道理)。
感谢您的帮助......
答案 0 :(得分:1)
您可以创建一个全局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获取数据后,您可以按照自己的意愿执行操作。
答案 1 :(得分:1)
是的,因为您需要为系统中的每个广告客户提供单独的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:
<select data-advertiserid="<?php echo $AdvertiserSQLResult['id']; ?> class="advertiser-select">...</select>
我写这篇文章的时候,如果我忽视了某些事情,我就这么道歉。
请参阅: