将PHP参数传递给JavaScript函数时出现问题
在下面的代码中,我有一个由三个字段和两个按钮组成的表单。在Review按钮中,我想随机显示阿拉伯语中的任何单词,并让用户通过勾选将PHP参数传递给JavaScript函数时出现问题,javascript,php,Javascript,Php,在下面的代码中,我有一个由三个字段和两个按钮组成的表单。在Review按钮中,我想随机显示阿拉伯语中的任何单词,并让用户通过勾选show translation按钮以英语显示其翻译 <html> <body> <script> function myFun1(var) { document.getElementById("demo").innerHTML = "The translation in English is " + va
show translation
按钮以英语显示其翻译
<html>
<body>
<script>
function myFun1(var) {
document.getElementById("demo").innerHTML = "The translation in English is " + var;
}
</script>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$english = $_POST["english"];
$arabic = $_POST["arabic"];
$example = $_POST["example"];
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<textarea name="english" rows="4" cols="70" placeholder="English">English</textarea>
<br>
<textarea name="arabic" rows="4" cols="70" placeholder="Arabic">Arabic</textarea>
<br>
<textarea name="example" rows="4" cols="70" placeholder="Example">Example</textarea>
<br><br>
<input type="submit" name="add" value="Add new">
<input type="submit" name="review" value="Review">
<br>
<p id="demo"></p>
</form>
<?php
$servername = "localhost";
$username = "xxx";
$password = "yyy";
$dbname = "vdb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if (isset($_POST['add'])) {
$sql = "INSERT INTO Vocabulary (English, Arabic, Example)
VALUES ('$english', '$arabic', '$example')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
elseif (isset($_POST['review'])) {
$sql = "SELECT COUNT(ID) as total FROM Vocabulary";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
#echo $row['total'];
$generated = rand(1,$row['total']);
$sql1 = "SELECT * FROM Vocabulary where ID = $generated";
$result1 = $conn->query($sql1);
$row1 = $result1->fetch_assoc();
echo "<br>";
echo $row1['Arabic'];
echo "<br><br>";
$eng = $row1['English'];
echo '<button onClick = "myFun('.$eng.')">Show translation</button>';
}
$conn->close();
?>
</body>
</html>
问题是,当单击按钮时,什么也没有发生(消息根本没有显示)。有没有办法解决这个问题?在开始之前将这个添加到顶部 标记
您有函数myFun1(var)的定义,但您正在调用myFun()。我想这就是为什么单击按钮后什么都没有的问题。首先将参数var更改为另一个参数名称,因为var是javascript中的关键字
<script type="text/javascript">
function myFun(as) {
document.getElementById("demo").innerHTML = "The translation in English is " + as;
}
</script>
Rest您的代码是完美的。console中是否有错误!?您有
函数myFun1(var)
但是调用onClick=“myFun('.$eng.)”
?@M0ns1f没有错误。该消息根本没有显示。能否显示$eng输出的示例var
是javascript中的保留字。将参数命名为其他名称为什么需要将其移动到
标记之前?php是在html输出之前解析的,因此不会产生错误difference@Sean只是在任何输出之前进行了一次头检查,这就是为什么在使用头位置或会话时会出现一些错误“…通过输出发送”,并且该检查不是php解析,我在IF中没有看到任何回音。函数myFun1(将此参数名称更改为保留名称)为@charlietfl,只需告诉您使用保留名称是100%的错误。我已修复了它,但问题仍然存在
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$english = $_POST["english"];
$arabic = $_POST["arabic"];
$example = $_POST["example"];
}
?>
<script type="text/javascript">
function myFun(as) {
document.getElementById("demo").innerHTML = "The translation in English is " + as;
}
</script>
echo '<button onClick = "myFun1(\''.$eng.'\')">Show translation</button>';