1

我有一个 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 变量(如果说得通)。

谢谢你的帮助...

4

2 回答 2

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

于 2012-04-30T16:48:57.570 回答
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>

我一边写一边写,如果我忽略了一些东西,我深表歉意。

看:

于 2012-04-30T16:50:08.400 回答