gpt4 book ai didi

PHP:将 JavaScript 函数的结果存储到 PHP 变量中

转载 作者:行者123 更新时间:2023-11-29 18:10:21 24 4
gpt4 key购买 nike

请记住,我对 PHP 还很陌生。我这个学期才开始在学校学习。

这就是我最终想做的事情:我有一个高级项目,正在构建一个计算机维修系统。在修复MySQL表中,我有一堆字段,其中一个是CustomerID(所以我知道哪些客户进行了哪些修复)。我想要删除客户的姓名,然后当我单击它时,如何将该客户的 ID 附加到变量,以便我可以执行 INSERT 语句。为了部分实现这一目标,我把事情分成了更小的部分。我工作的一小部分是当我选择一个下拉值时,它会将其输出到屏幕,但这是在 javascript 函数中。

这是我的代码:

<?PHP
include('session.php');
$db_name = "";
$mysql_username = "";
$mysql_password = "";
$mysql_server = "";
$mysqli = new mysqli($mysql_server, $mysql_username, $mysql_password,
$db_name);
$query = "SELECT custID, CONCAT(custFirstName, ' ', custLastName) as
Customer_Name FROM customer";
$result = mysqli_query($mysqli, $query);

echo "<select name ='names' id='myselect' onchange = \"myFunction()\">";
while ($row = mysqli_fetch_array($result)){
echo "<option value = '" . $row['custID'] . "'>" . $row['Customer_Name'] . "
</option>";
}
echo "</select>";
echo "<p>When you select a customer name, a function is triggered which
outputs the ID of the selected customer.</p>
<p id=\"demo\"></p>

<script>
function myFunction() {
var x = document.getElementById(\"myselect\").value;
document.getElementById(\"demo\").innerHTML = x;
}
</script>";

$content = "<script> document.write(x) </script>";

echo "<br> <br> The technician ID = $sTechID <br> <br> The customer ID = $content";
?>

我可以使用 Javascript 函数将 ID 输出到屏幕,但是当我尝试将“x”存储到 php 变量中时,它不起作用。在 Chrome 中,检查员说 X 未定义。

附注:我用此代码创建了一个测试文件,它有效:

<?PHP
echo "
<script>
var x = \"hello\"
</script>";

$content = "<script> document.write(x) </script>";

echo "$content <br> <br> $content";
?>

因为上面的代码有效,我不明白为什么我的更大的代码不起作用。

我知道我的代码很困惑,但任何帮助将不胜感激。谢谢!

最佳答案

PHP是后端语言,无法检测点击、更改等前端事件

在较大的代码中,只有在事件触发 (onchange) 时才会定义 x 的值,即 select输入变化。 Javascript 是这样工作的,但 PHP 不是这样。一旦 PHP 第一次发送响应,它的工作就完成了。

这是您想要使用表单或 Ajax 的时候。使用表格将是一个好的开始。

请注意,尽量将 HTML、CSS 和 JS 与 PHP 分开是一个很好的做法。

...
$result = mysqli_query($mysqli, $query);

?>

<form method='post' action='insert.php' /> <!-- Link to php file to insert data to database -->
<select name ='names' id='myselect' onchange = "myFunction()">
<?php
while ($row = mysqli_fetch_array($result)){
echo "<option value = '" . $row['custID'] . "'>" . $row['Customer_Name'] . "
</option>";
}
?>
</select>
<input type="submit" value="submit" /> <!-- You will need a button to submit the data -->
</form>

<p>When you select a customer name, a function is triggered which
outputs the ID of the selected customer.</p>
<p id="demo"></p>

现在您的 insert.php 文件将如下所示:

<?php 

// Get data from that was posted from the form
$customer_id = $_POST['names'];

// Now do whatever with the customer ID
echo $customer_id;

关于PHP:将 JavaScript 函数的结果存储到 PHP 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462475/

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