将变量从JavaScript传递到php,错误:

将变量从JavaScript传递到php,错误:,javascript,php,Javascript,Php,我正在triyng将一个var值从javaScript传递到php,我得到了这个错误 未定义索引:C:中的postmarca:。 其目的是避免php返回主键marcaID的值,并返回定义为marca的选择名称,该名称是从数据库中获取的 我做错了什么 <?php $marca = $_POST['postmarca']; echo "$marca"; ?> <html> <head> <script type= "text/javascript"

我正在triyng将一个var值从javaScript传递到php,我得到了这个错误 未定义索引:C:中的postmarca:。 其目的是避免php返回主键marcaID的值,并返回定义为marca的选择名称,该名称是从数据库中获取的

我做错了什么

<?php

$marca = $_POST['postmarca'];
 echo "$marca";
?>


<html>
<head>
<script type= "text/javascript" src="jquery-3.1.1.min.js"></script>
</head>
<body>
<div id="reg">
    <form>



<select name="marca" class="marca" id="marca">
    <option selected="selected">--Select MArca--</option>
        <?php
          $stmt = $db->prepare("SELECT * FROM tabl_marca");
                     $stmt->execute();
                     while($row=$stmt->fetch(PDO::FETCH_ASSOC))
                                     {
                            ?>
      <option value="<?php echo $row['marcaID']; ?>">
      <?php echo $row['marcas']; ?></option>
    <?php
         } 
     ?>
                        </select>

        <input type="button" value="submit" onclick="post();">
        </form>

</div>
</body>
JAVASCRIPT


在第一次加载页面时,您尝试获取POST值postmarca,但没有提交任何表单

您应该有一个条件来查看是否已提交表单,如下所示:

if (!empty($_POST['postmarca'])) {
    echo $_POST['postmarca'];
}
我假设您发布的文件名为tester.php

在这种情况下,您可能会遇到一个问题,因为Javascript中生成的$.post是一个AJAX调用,它将包含您的所有tester.php文件,在这里您将有一种代码起始


您可以将我编写的代码放入一个名为per example submit.php的新文件中,然后避免代码开始。

在页面的第一次加载时,您尝试获取POST值postarca,但没有提交任何表单

您应该有一个条件来查看是否已提交表单,如下所示:

if (!empty($_POST['postmarca'])) {
    echo $_POST['postmarca'];
}
我假设您发布的文件名为tester.php

在这种情况下,您可能会遇到一个问题,因为Javascript中生成的$.post是一个AJAX调用,它将包含您的所有tester.php文件,在这里您将有一种代码起始

您可以将我编写的代码放入一个名为per example submit.php的新文件中,然后避免代码开始。

一旦将数据从脚本发布到当前脚本,就会设置变量$\u POST['postarca']。当您第一次运行脚本时,没有将“postmarca”添加到全局变量$\u POST中,因为假设当前脚本为tester.php,脚本没有发布数据。在使用变量之前,请尝试添加条件以检查变量是否可用,即:

if(isset($_POST['postmarca'])){
    $marca = $_POST['postmarca'];
    echo $marca;
}
您可能还想更改onclick=post;单击=提交

将数据从脚本发布到当前脚本后,将设置变量$\u POST['postmarca']。当您第一次运行脚本时,没有将“postmarca”添加到全局变量$\u POST中,因为假设当前脚本为tester.php,脚本没有发布数据。在使用变量之前,请尝试添加条件以检查变量是否可用,即:

if(isset($_POST['postmarca'])){
    $marca = $_POST['postmarca'];
    echo $marca;
}

您可能还想更改onclick=post;单击=提交

谢谢。我明白你的意思。。。但是在这种情况下,结果将显示在submit.php中,对吗?如何在主文件tester.phpThanks中维护结果。我明白你的意思。。。但是在这种情况下,结果将显示在submit.php中,对吗?如何在主文件tester.phpThanks中维护结果感谢您的帮助。正如您所说,我更改了代码,并将文件tester.php更改为另一个caled submit.php,在其中插入了那段代码isset。。我消除了错误,但它不回显插入的值。当我检查控制台上的步骤时,我没有看到submit.php文件正在执行。。。。。任何传统的输入。首先,我希望您将javascript代码包含在tester.php html中,并将js函数submit it to submit to submit.php.$。发布'submit.php'…我通过了新代码。要不要看一看?谢谢,我看过了。当我将js函数submit的名称改为另一个名称(例如getSubmission)时,它起了作用。这就是问题所在。我不知道为什么会这样。谢谢你的帮助。正如您所说,我更改了代码,并将文件tester.php更改为另一个caled submit.php,在其中插入了那段代码isset。。我消除了错误,但它不回显插入的值。当我检查控制台上的步骤时,我没有看到submit.php文件正在执行。。。。。任何传统的输入。首先,我希望您将javascript代码包含在tester.php html中,并将js函数submit it to submit to submit.php.$。发布'submit.php'…我通过了新代码。要不要看一看?谢谢,我看过了。当我将js函数submit的名称改为另一个名称(例如getSubmission)时,它起了作用。这就是问题所在。我不知道为什么会这样。