我的PHP文件没有运行JavaScript代码

时间:2018-02-01 20:25:27

标签: javascript php

我发布了完整的代码,但问题出在foreach循环中的按钮上。我已经制作了一个onclick JavaScript函数,但是当我点击按钮时,没有任何反应。有人会给我一个暗示吗?

我确定其余的工作正常。

以下是代码:

</style>
</head>
<body style="background-color:lightgrey;">
<script "text/javascript">

function show_your_message(subject,message){
<?php echo "1" ?>
$_SESSION['subject'] = subject;
$_SESSION['message'] = message;
location.href = 'show_messgae.php';
}
</script>
<?php    

require 'db.php';

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

session_start();
$id = $_SESSION['email'];
$sql = "SELECT * FROM account_inbox WHERE inbox_user = '$id'";

$result=mysqli_query($conn,$sql);

$rowcount=mysqli_num_rows($result);

$type_array = array();
$from_user_array = array();
$page_link_array = array();
$message_array = array();
$subject_array = array();

while($row = $result->fetch_assoc()) {
array_push($type_array,$row['type']);
array_push($from_user_array,$row['from_user']);
array_push($page_link_array,$row['page_link']);
}

$sql = "SELECT * FROM private_messages WHERE to_user = '$id'";
$result=mysqli_query($conn,$sql);

while($row = $result->fetch_assoc()) {
array_push($message_array,$row['message']);
array_push($subject_array,$row['subject']);
}

include 'header.php';
if (isset($_SESSION["email"]) && !empty($_SESSION["email"])) { 
?>


<section id="middle_table">
<div class='post feed'>
    <div class="wrapper">
        <table>

<tr>
<th>from</th>
<th>message type</th>
<th>Go to message</th>
</tr>



                    <?php foreach (range(0, $rowcount - 1) as $i): ?>
                        <tr>
                            <td><?php echo $from_user_array[$i]; ?></td>
                            <td><?php echo $type_array[$i]; ?></td>
                            <td><button onclick="show_your_message('<?php 
                            echo $subject_array[$i]; ?>','<?php echo $message_array[$i]; ?>') "> Click to open</button></td>
                        </tr>


                    <?php endforeach; ?>
             </table>
        <div class="wrapper">
        <input type="button" class="button" value="Next" style="float: right; cursor: pointer;">
        <input type="button" class="button" value="Previous" style="float: right; cursor: pointer;">
</div>
    </div>
</div>
 </section>


  </body>
   </html>

<?php } 
else {
    echo "<h1> You are not logged in </h1>";
} ?>

2 个答案:

答案 0 :(得分:1)

在尝试执行此操作时,无法使用JavaScript设置PHP变量:

function show_your_message(subject,message){
    <?php echo "1" ?>
    $_SESSION['subject'] = subject;
    $_SESSION['message'] = message;
    location.href = 'show_messgae.php';
}

这应该抛出错误消息(检查您的浏览器的控制台),因为您甚至没有将SESSION值放在PHP标记中。

为了从JavaScript设置SESSION变量,您必须使用AJAX将值发送到PHP脚本进行处理。请记住,远程设置SESSION变量可能会有问题,因为这些变量不会像您期望的那样反映在当前页面中,除非您在设置后重新加载当前页面。

另一种方法是进行页面重新加载(不需要JavaScript),在其中设置SESSION值。

答案 1 :(得分:1)

Jay said的内容进行了扩展,并考虑到我认为您正在尝试完成的内容,您可以用以下内容替换您的javascript函数:

function show_your_message(subject,message){
    location.href = "show_message.php?subject=" + subject + '&message=' + message;
}

show_message.php中,您可以从查询字符串中获取值并将其设置在PHP文件中。

根据主题和消息的大小,查询字符串可能不是一个好主意。