如何从外部php文件

时间:2015-08-14 05:01:57

标签: javascript php

我们当前正在浏览mypage.html,其标题中包含指向以下js文件的链接:

<script language="JavaScript" type="text/javascript" src="jsfile.js"></script>

jsfile.js中,当用户将某些内容输入keyup()时,会执行一项功能#searchbar,其值将存储在search = $(#searchbar).val();

然后我将此值传递给search.php,如下所示:

$.post( "search.php", { searchval: search }, function(sentdata){
    console.log(sentdata);
});

其中search.php的内容为:

<?php
if(isset($_POST[searchval])){
        $search = $_POST[searchval];
    echo "input value is $search";
    echo "<script type='text/javascript'> alert('its working') </script> ";
}
?>

但是,不是弹出警报(或者通常在JS中执行的任何其他操作),第二个回显只是打印&#34;提醒(&#39;其工作&#39;)&#34;进入控制台。 如何修改search.php以允许它将实际的js注入myfile.html?请注意,我还尝试在标记中包装js代码。

相关问题:为什么当我省略console.log(sentdata)时,search.php不再在控制台中回显任何内容?

2 个答案:

答案 0 :(得分:1)

  

如何修改search.php以允许它在myfile.html中注入实际的js?

首先,您需要修改您的javascript文件:

$.post( "search.php", { searchval: search }, function(sentdata){
    eval(sentdata);
});

不需要javascript标签,只需回显有效的Javascript代码:

if(isset($_POST[searchval])){
    echo "alert('its working');";
}

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/eval

答案 1 :(得分:0)

你可以这样做

$.post( "search.php", { searchval: search }, function(data){
    alert(data);  // this will alert the data which will print on search.php
});

并在php文件中回显您要打印的数据,如

if(isset($_POST[searchval])){
    echo 'its working. i got'.$_POST[searchval];
}