gpt4 book ai didi

javascript - 将带有获取数据的 PHP 变量传递给 JavaScript 变量返回 NULL 或空

转载 作者:行者123 更新时间:2023-11-30 19:27:14 26 4
gpt4 key购买 nike

我在 JS 中返回 PHP 变量的值时遇到问题。它返回 NULL 或空而不是返回年龄。

方法:

将带有数据的 PHP 变量传递给单独文件中的 JS 变量。在 alert() 中显示 JS 变量。在 while 循环中使用 fetch_assoc() 从数据库中获取数据。不使用 Ajax!

拟议计划:

  1. 输入姓名。

  2. 提交。

  3. PHP 获取与该名称关联的年龄。

  4. 年龄存储在 PHP 变量 dbage 中。

  5. 传递到 JS 变量以提醒用户他们的年龄。

我正在尝试将 $dbagesampletest.php 传递给 user in sample.php 这将onsubmit 显示一条警告说:“你的年龄是废话”。

blah$dbage,其中包含年龄。这是为了测试。一旦我理解了为什么这不起作用,我就可以继续将这些 JS 变量发送到将进行计算并返回到数据库的函数。

到目前为止我尝试了什么..

  1. 尝试使用 ob_start() 捕获 echo 但它也返回了 NULL

    示例:

       ob_start();
    echo $dbage;
    $output = ob_get_contents();
    ob_end_clean();
  2. 使 $dbage 成为全局变量。返回空。

  3. 回显变量在 while 循环之外但返回了 NULL

    例子:

        $dbage = '';
    while( $row = $result->fetch_assoc()) {
    $dbage = $row['age'];
    }
    echo $dbage;

如有任何建议、更正,我们将不胜感激。

sample.php(索引文件)

<?php
include 'sampletest.php';
session_start();
?>

<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<body>
<div id="id03">
<form class="modal-content" action="sampletest.php" method="post" onsubmit="myFunction()">
<div class="container">
<input type="text" id="name" placeholder="Enter name" name="name">
<div class="clearfix">
<button type="submit" class="loggedinbtn" name="load"/>Load
</div>
</div>
</form>
</div>

<script>
function myFunction() {
var user = '<?php echo(json_encode($dbage)); ?>';
alert("This is a php varible " + user);
}
</script>
</body>
</html>

sampletest.php

if(isset($_POST['load'])){
require 'config.php';
$name = $_POST['name'];
$age = $_POST['age'];
if(empty($name)) {
echo "Enter a number";
}elseif(!preg_match('/^[a-z ]+$/i', $name)){
echo "Enter a letter, no numbers";
}else{
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
header("location: sample.php?Connect-database=failed");
exit();
}
$sql = "SELECT name, age FROM results WHERE name= '$name';";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while( $row = $result->fetch_assoc()) {
$dbage = $row['age'];
}
}
else{
echo "0 results";
}
$conn->close();
}
}

最佳答案

您在表单中的操作应设置为 sample.php,我认为是第一个问题。然后一起摆脱 javascript。

<form class="modal-content" action="sample.php" method="post">

然后改变:

<script>
function myFunction() {
var user = '<?php echo(json_encode($dbage)); ?>';
alert("This is a php varible " + user);
}
</script>

只是

<script>
var user = <?php echo $dbage; ?>;
alert("This is a php varible " + user);
</script>

向 PHP 提交 html 表单根本不需要 javascript。

关于javascript - 将带有获取数据的 PHP 变量传递给 JavaScript 变量返回 NULL 或空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56780638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com