我的PHP调查表中有以下问题:
从图像中可以看出,当用户选择“按演员”时,会出现一个文本框(我使用jQuery自动完成)。然后,我需要的是当用户点击“这个演员的电影”按钮时,这个演员的电影列表(在这种情况下:汤姆汉克斯)将在新窗口中显示。
为了通过用户插入文本框中的演员来获取电影,首先,我必须这样做
能够在子窗口中访问selectedVal
。然后,我必须运行数据库查询以通过selectedVal获取所有电影(文本框中的演员姓名)。
这是我的代码:
<html>
<body>
<div id="m_scents2" class="field2" style="display:none;">
<input type="textbox" name= "tag" id="tags" placeholder="Enter an actor/actress name here" />
<input type="button" value="Movies by this actor" id="btnRight" />
</div>
<script type="text/javascript">
var selectedVal;
$(document).ready(function () {
// ...
//..
if ($(this).val() == "byActor"){
$("#tags").focus();
$("#tags").autocomplete({
source: "actorsauto.php",
minLength: 2,
focus: function( event, ui ){
event.preventDefault();
return false;
},
select: function (event, ui){
window.selectedVal = ui.item.value;
}
});
});
$('#btnRight').on('click', function (e) {
popupCenter("movieByactor.php","_blank","400","400");
});
</script>
</body>
</html>
这是子窗口(movieByactor.php):
<script type="text/javascript">
var selectedVal = parent.window.opener.selectedVal;
$.ajax({
url: 'childfilm.php', //childfilm.php IS A PHP FILE WHERE I RUN SQL QUERY TO GET MOVIES BY THE ACTOR ...
datatype: "json",
data:{q:selectedVal},
success: function(response) {
alert(JSON.stringify(response));
}
});
</script>
现在我的问题是如何在javascript中使用php?我知道php是服务器端,而javascript是客户端。我阅读了很多类似的问题并使用了ajax,但是使用上面的代码,当我点击按钮时,会出现一个新窗口,但它是空的。
如果有人可以帮助我,我真的很感激。
提前致谢,
答案 0 :(得分:2)
如果您将网址放在引号之间,问题就解决了:网址:&#39; childfilm.php&#39;。没有引号,javascript认为它是一个对象(将返回undefined)。
答案 1 :(得分:2)
childfilm.php应该在引号中
<script type="text/javascript">
var selectedVal = parent.window.opener.selectedVal;
$.ajax({
url: 'childfilm.php', //childfilm.php IS A PHP FILE WHERE I RUN SQL QUERY TO GET MOVIES BY THE ACTOR ...
datatype: "json",
data:{q:selectedVal},
success: function(response) {
alert(JSON.stringify(response));
}
});
</script>