我想在JavaScript中使用PHP代码,但它不起作用:
<script type="text/javascript">
function edit(pollNo)
{
<?php
$result = mysql_query( 'CALL ret_poll('.pollNo.')' );
$row = mysql_fetch_assoc($result);
echo 'document.poll.pollTitle.value='.$row['title'];
?>
}
</script>
答案 0 :(得分:4)
您可以使用jQuery对执行PHP代码的PHP页面执行AJAX请求,并传递JavaScript函数中的参数。 查看jQuery网站,了解有关此主题的更多信息: http://api.jquery.com/category/ajax/
代码中的一个大问题是JavaScript在客户端运行而PHP在服务器端运行。这就是为什么不可能将这两者混合起来的原因。
我是为你写的,但我没有测试过。我很确定它会让你知道如何实现这个:
<强> getpollinfo.php 强>
<?php
if ( IsSet( $_GET['poll'] ) ) {
/* Connect to MySQL here */
$result = mysql_query( 'CALL ret_poll(' . intval( $_GET['poll'] ) . ')' );
$row = mysql_fetch_assoc($result);
echo json_encode($row);
}
?>
JavaScript代码(假设您已加载jQuery框架)
function edit(pollNo)
{
$.get('getpollinfo.php', { 'poll' : pollNo }, function(data) {
$('#pollTitle').html(data.title);
});
}
答案 1 :(得分:2)
Javed,它不是你不能在javascript中使用php。然而,用途非常有限。
查看示例
alert('<?php echo "hi"; ?>');
服务器渲染后,脚本将
`alert('hi');` //SO it will alert `hi` now
大多数情况下,你可以使用PHP和javascript混合创建一个你想在运行时运行的脚本
例如
<script>
<?php
$location = $_SESSION['logged'] ? 'admin.php' : 'index.php';
?>
window.location('<?php echo $location; ?>');
</script>
或类似的东西
<script>
<?PHP if($test==true) { ?>
function test() {
//do something;
}
<?php } else { ?>
function test() {
//do something else but not the previous one
}
<?php } ?>
</script>
然而,你正在尝试的是尝试使用PHP代码作为JAVASCRIPT 这是不可能的!!!!!!!!
相反,您可以像其他答案建议的那样使用AJAX来解决此问题。
您的可能解决方案的一个小演示
文件:myMYSQLPROCESSING.php
// Your connections and other above
$result = mysql_query( 'CALL ret_poll('.$_POST['pollno'].')' );
$row = mysql_fetch_assoc($result);
echo $row['title'];
JS
function edit(pollNo)
{
$.post("myMYSQLPROCESSING.php",
{ "pollno" : pollNo },
function(data) {
// Now data, will contain whatever you echo in myMYSQLPROCESSING.php
// May be a success message or error message
// and do whatever you want with the response
document.poll.pollTitle.value=data; //in your case something like this
}
);
}
这是一个jQuery代码,如果您不熟悉它。
答案 2 :(得分:2)
Javascript =客户端。
Php =服务器端。
你不能按照你使用的方式组合它们,你需要使用ajax来做你想做的事。
序列将是:
答案 3 :(得分:2)
首先,您必须了解PHP在服务器端运行,而JavaScript在客户端运行。因此,只要将它放在那里就不能直接在JavaScript函数中调用PHP代码。
当客户端发出请求时,PHP解释器会执行代码并生成一些输出。此输出发送到浏览器,然后执行JavaScript代码。 PHP的工作已经完成了。
您可以使用Ajax实现所需目标(尽管我认为您必须首先了解有关JavaScript,PHP和HTTP的更多信息。)
但是给你一个例子(使用jQuery库):
function edit(pollNo){
$.get('get_poll.php',{id: pollNo}, function(data) {
$('input[name="pollTitle"]').val(data);
});
}
您的PHP文件的位置如下:
// db connection...
$result = mysql_query( 'CALL ret_poll('.mysql_real_escape_string($_GET['id'].')' );
$row = mysql_fetch_assoc($result);
echo $row['title'];
答案 4 :(得分:1)
答案 5 :(得分:1)
如果你需要按照你的意思行事,你最终只会使用特定的Javascript代码版本呈现页面。
如果你真的想这样做,你必须查看输出,看看你需要在Javascript中引用字符串。
<script type="text/javascript">
function edit(pollNo)
{
<?php
$result = mysql_query( 'CALL ret_poll('.pollNo.')' );
$row = mysql_fetch_assoc($result);
echo 'document.poll.pollTitle.value="'.$row['title'].'"';
?>
}
</script>
您的浏览器最终会:
<script type="text/javascript">
function edit(pollNo)
{
document.poll.pollTitle.value="somehardcodedtext";
}
</script>
您必须考虑在$row['title']
的输出中转义引号符号,以及是否只想使用AJAX调用服务器。