我是新手,请多关照:) 在 Javascript 中,如何将数组中的当前条目添加到变量中?请参阅下面的代码。
<?php
$array = mysql_query(SELECT column1 FROM table1 WHERE column2='$entry');
//this returns several entries
<script>
var array=<?=json_encode($array)?>; // the
var data={mouse:mickey, rabbit:roger};
$.each(array, function(){
$.post('dostuff.php',data+','+{array[this]}); // <-- not sure
});
</script>
?>
我的问题是关于“post”jquery 命令中发送的数据。如何添加当前数据库条目并将其作为 ajax 请求中发送的数据的一部分发送。我写得很粗略,但我确信我在这里写的方式不对。
谢谢!
最佳答案
如何从 MySQL 中获取数据?
mysql_query
返回用于实际获取结果的句柄(有点像读取文件时的文件句柄)。
您应该使用 mysql_fetch_array
,它会从结果集中为您提供一行,或者在您到达末尾时使用 false
。
请记住,从 mysql_fetch_array
返回的数组将包含以数字作为键的值,以及作为键的字段名,您可能只对后者感兴趣;那么你应该使用mysql_fetch_assoc
:
// please remember to sanitize $entry before using it in a SQL query.
$result = mysql_query ("SELECT column1 FROM table1 WHERE column2='$entry'");
$query_data = array ();
while (($row = mysql_fetch_assoc ($result)) !== false) {
$query_data[] = $row;
}
...
<script>
var array = <?=json_encode ($query_data);?>;
...
我又看了一遍你的帖子,如果你只对单行和单列的值感兴趣,那么你应该使用 mysql_fetch_field
(将你的 $result
传递给它来自 mysql_query
)。
该函数将返回第一列中的值(在您的情况下为 field1
)。
将此值包装在一个数组中,并在将其提供给您的 javascript 之前使用 json_encode
。
文档
如何在 javascript 中遍历数组?
发送到 jQuery.each
的回调可以选择采用两个参数。
- 当前条目的索引
- 当前条目的值
有了这些知识,您可以将您的函数编写为:
$.each(array, function(idx, value){
$.post('dostuff.php',[data, value]);
});
// or.. (depending on what you wanna do)
var post_data = $.extend ({}, data, {array_data: array});
$.post ('dostuff.php', post_data);
关于php - Javascript 数组中的当前条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622052/