我有这个查询(Javascript)函数,它每次更改选择菜单时都会更改输入值。我从php变量中带来了值。 (参见示例)。对于option
中的每个select
,我都会插入一个从1到n的值,如下所示:
$i = 0;
foreach($videos as $val)
{
echo '<option value='.$i.'>'.$val->title.'</option>';
$i++;
}
所以我的想法是我带着JQuery的选项值,我想在我在Javascript中使用的PHP表达式中使用,我想知道在这种情况下如何将javascript变量放在PHP表达式中(参见我的示例PHP { {1}}正好这个表达式,它是一个javascript变量,其余的是PHP)
echo $videos [ii] ->title;
由于
答案 0 :(得分:0)
在将变量插入jquery语句之前,创建一个新变量并为其赋予PHP值。 (我还没试过你的例子,但我认为如果你这样试试你会有更多的运气) var whatever =“”; 然后将任何内容插入到jquery中。 如果你需要使用php创建javascript变量,构造一个语句来使用PHP编写javascript,将其写入javascript文件并将其包含在页面中。
答案 1 :(得分:0)
在你的例子中,严格来说,你是不在Javascript中使用PHP变量。
您正在做的是:您使用PHP来输出 Javascript,并在该输出中使用PHP变量。
PHP是服务器端,HTML和Javascript(以及其他任何东西)的结果输出将被传输到浏览器(客户端),在那里它将被解析/执行。
但是:在客户端,没有PHP。您不能在客户端创建的任何PHP代码中使用Javascript变量。
您可以做的是:在对服务器端(PHP)脚本的请求中使用Javascript变量,您可以使用标准表单提交或类似Ajax的方法。在这种情况下,您将使用Javascript变量作为请求参数请求执行服务器端脚本。然后可以在客户端再次使用PHP脚本的输出...在页面刷新之后或(当使用Ajax时)在您当前所在的同一页面上。
答案 2 :(得分:0)
您无法以您描述的方式将JavaScript值发送到php。您可以使用ajax将javascript值发送到服务器,对其进行评估并获得响应。
另一种方法是添加一个数据属性,如下所示:
<div id="somediv" data-value="..." >
然后
使用带有
的jQuery检索它$('#somediv').attr('data-value') ;
或
$('#somediv').data('value') ;
答案 3 :(得分:0)
当你执行javascript和php时,我不确定你是否真的理解。
因为这条线真的不是一个:
$( "#titre" ).val("<?php echo $videos[ii]->title; ?>");
Javascript根本不知道php。在服务器端,php创建一个html文件,然后加载javascript。
当javascript在客户端执行时,再也没有php了。您的浏览器不执行php,它是执行此操作的服务器。
然后,如果要在页面加载后执行php脚本,则必须使用ajax进程。 如果我修改你的代码,它更像是:
$('select').change(function(){
var i = $( "#select option:selected" ).val();
var ii = parseInt(i,10);
$.ajax({
type: 'POST',
url: 'get_video_title.php',
data: {idVideo:ii},
dataType: 'json',
success: function (data) {
$("#titre").val(data);
}
});
});
答案 4 :(得分:0)
正如评论中提到的,你不能使用javascript变量来操纵php代码。这是因为当javascript运行时,页面已经通过php解析器运行并传递给浏览器。
你可以做三件事
.val()
进行检索,如果您不需要其他$videos
数组$videos
数据更改选项值以反映标题文字
echo '<option value='.$val->title.'>'.$val->title.'</option>';
JS
$( "#titre" ).val($(this).val());
动态javascript
<script>
//output a json string which javascript will
//then interpret as a object/array literal
var data = <?php echo json_encode($videos);?>;
//...
$('select').change(function(){
var i = $( "#select option:selected" ).val();
var ii = parseInt(i,10);
//use the data variable appropriately
$( "#titre" ).val(data[ii].title);
});
</script>
使用ajax请求
someScript.php
<?php
$data = $_POST['somedata'];
//some processing to get the appropriate return value
//based on $data
//if output is supposed to be an array/object
echo json_encode($output);
//or if it is supposed to be text etc
echo $output;
JS
$('select').change(function(){
var i = $( "#select option:selected" ).val();
var ii = parseInt(i,10);
$.ajax({
url:"someScript.php",
type:"POST",
data:{
somedata:33
}
//can set datatype or remove and let jquery
//parse based on mime type
dataType:"text"
}).success(function(data){
//gonna assume data is just text
$( "#titre" ).val(data);
});
});
答案 5 :(得分:0)
使用您的代码并使用$( "#select option:selected" ).text()
获取标题:
$('#select').change(function(){
var i = $( "#select option:selected" ).val();
$( "#titre" ).text($( "#select option:selected" ).text());
});
答案 6 :(得分:-4)
您无法在PHP中使用Javascript变量。他们是完全不同的系统。