将PHP数组传递给javascript变量,然后传递给服务器
passing php array to javascript variable, then to server
我知道这个问题在这里已经被问过很多次了,但我就是想不明白。我肯定这很简单,但我一直在绞尽脑汁。我的搜索结果是php数组,显示在jquery窗口中。我需要最终将它们返回到服务器,但首先需要将它们传递给jquery变量。这就是我被卡住的地方。
你会看到我已经尝试通过$book_title,试图将其传递给jquery变量"title"
<script>
$(function() {
$( "#dialog" ).dialog({
height: 550, width: 450});
$( ".btn" ).click(function(){
//assign values to each variable
//var title = $("#returnvalues").val();
var title = <?php echo json_encode($book_title);?>;
var author = $("#returnvalues").val();
var published = $("#returnvalues").val();
var description = $("#returnvalues").val();
var pages = $("#returnvalues").val();
var publisher = $("#returnvalues").val();
var ISBN = $("#returnvalues").val();
//book_title = $item['volumeInfo']['title'];
$.ajax({
type: "POST",
url: 'book-meta.php',
dataType: 'json',
//assign values to the variables to be passed to the server via data
data: { title : title, author : author, published : published,
description : description, pages : pages, publisher : publisher, ISBN : ISBN},
success: function(data)
{
//alert(data);
//identify the variables for unique handing on the server side
$("input[name='bbp_topic_title']").val(data.title);
$("input[name='bbp_extra_field1']").val(data.author);
$("input[name='bbp_extra_field2']").val(data.published);
$("input[name='bbp_extra_field3']").val(data.description);
$("input[name='bbp_extra_field4']").val(data.pages);
$("input[name='bbp_extra_field5']").val(data.publisher);
$("input[name='bbp_extra_field6']").val(data.ISBN);
//$("#displayResults").html(data);
},
error: function(errorThrown){
alert('error');
}
});
$( "#dialog" ).dialog( "close" );
});
});
</script>
<strong><p style="font-size: 16px; text-align: center";>Top 10 Results for "<?php echo @$_POST['q']; ?>"</p></strong>
<strong><p style="font-size: 14px; text-align: center";>choose a book to select as your topic</p></strong>
<table style="width:400px">
<col width="325">
<col width="75">
<?php $i=0; foreach ($data['items'] as $item) { $i++; ?>
<tr>
<td>
<strong><u><div style="font-size: 14px";><?php printf($item['volumeInfo']['title'])?></u></div></strong>
<strong>Author: </strong><?php printf( $item['volumeInfo']['authors'][0])?><br />
<strong>Published: </strong><?php printf( $item['volumeInfo']['publishedDate']); ?><br />
<strong>Page(s): </strong><?php printf( $item['volumeInfo']['pageCount']); ?><br />
<strong>Publisher: </strong><?php printf( $item['volumeInfo']['publisher']); ?><br />
<strong>Category: </strong><?php printf( strtolower($item['volumeInfo']['printType']).', '.strtolower($item['volumeInfo']['categories'][0])); ?>
<strong>ISBN: </strong><?php printf( $item['volumeInfo']['industryIdentifiers'][0]['identifier']); ?></td>
<td><p><input type="submit" method="post" name="selectbook" value="Select" class="btn" id="returnvalues" /></p>
<img src="<?php printf( rawurldecode($item['volumeInfo']['imageLinks']['smallThumbnail'])); ?>" />
</td>
<tr><td style="width:420px"><p><strong>Description: </strong><?php printf( $item['volumeInfo']['description']); ?><br /></p></td>
<?php $book_title=$item['volumeInfo']['title'];
//$book_meta=array($item['volumeInfo']['title']=>"$book_title",$item['volumeInfo']['authors'][0]=>"$book_author");
//print(json_encode($book_meta));
任何帮助都是感激的。如果这被标记为重复的问题,也请给这个新手一些具体的方向。谢谢。
我明白了!感谢XQDev和Uttara的帮助!我必须在显示php结果的循环中创建一个单独的脚本。在这个单独的脚本中,我只声明了javascript变量。
<script>
var title = <?php echo json_encode($book_title); ?>;
</script>
问题已解决!希望这篇帖子能帮助将来遇到类似问题的人。
var title = "<?php echo $book_title; ?>"
可能导致您想要的结果。
可以在赋值后使用alert(title)
来检查结果。
但是:你的方式,如果$book_title包含一个字符串,应该是好的。到底是什么不起作用?
如果你试图将php数组赋值给javascript变量,那么执行
var title = <?php echo json_encode($book_title); ?>;
考虑到$book_title是一个数组
Eg: <?php
$book_title = array('one', 'two');
?>
javascript: title = ['one', 'two']
相关文章:
- 如何在VB中先执行客户端代码,然后再执行服务器端代码
- Javascript onclick需要点击两次,然后会创建越来越多的服务器请求
- 使用 AJAX 获取 XML,然后将其解析为 JSON(无需服务器)
- 如何检查服务器是否返回未定义然后忽略它
- 在上传之前预览图像,然后以aspmvc上传到服务器
- 在Visual Basic中加密AES,然后在服务器到客户端中解密AES
- 如何截屏网页的一部分,然后用Javascript将其传递给服务器
- 我可以使用jquery和AJAX来调用cgi-bin脚本,然后添加消息事件来处理服务器发送事件吗
- 如何将文本输入保存为变量,然后提交到服务器(ajax 和 javascript)
- 我可以请求一个带有JavaScript的网页,然后将其按原样发送到服务器进行进一步分析吗?
- 使用 JQuery 执行服务器端验证,然后将用户发送到另一个站点
- 在键盘上的select2中按下向下箭头键,然后我必须避免服务器调用
- 当我在 Javascript 中加载相同的声音 n 次时,浏览器会只是从服务器获取声音,然后将其复制到 n 个不同的对象
- 如何先调用客户端脚本函数,然后再调用服务器端按钮单击事件
- 在javascript中使用RSA加密一个小字符串,然后在服务器上用java解密
- 如何将上传的图片附加到表单中,然后发布到服务器
- 无法拆分文件并发送然后加入服务器
- 由服务器初始化然后由客户端运行的时钟已延迟
- JQuery试图打印选中复选框的表的列,然后打印来自web服务器的响应
- 在浏览器中只显示PDF一次,然后将其从C#服务器中删除