javascript无法正常使用php

javascript not working properly with php

本文关键字:常使用 php javascript      更新时间:2023-09-26


我尝试过在php中调用简单的javascript函数。我不能调用函数showResult()。我不知道这段代码出了什么问题。你能帮我查一下吗?我感谢你的帮助
http://www.mediafire.com/?hycdzegki1n79lg
关于

更新:是。我知道这是一个修复性的问题(这个问题现在以否定结束),但我认为问题不同了。事实上,我可以写其他类似的东西,只是我被这个卡住了。我不能很好地在这里发布全部或必要的功能,因为在我发布之后,它变得很乱。很抱歉给你添麻烦。我应该上传什么链接?

<?php
echo '<select name="companyNameList" onchange="showResult()" >';
for ($row = 0; $row < 2; $row++)
{
echo '<option value="'.$placement[$row]["company_name"].'">'.$placement[$row]    ["company_name"].'</option>';
}
echo '</select>';
?>

有几个问题。

HTML结构和Form标签不正确,它们应该在主体中

<html>
   <head>
      <script>
      </script>
   </head>
   <body>
     <form>
     </form>
   </body>
</html>

这是你应该遵循的结构

他们写onChange函数的方式是正确的,但我认为问题在于showResultJS函数

在您使用的功能中

<script type="text/javascript">
function showResult()
{
    var companyName = companyNameList.value;
    var insertvalue = d.getElementById('lblCompanyName');
    insertvalue.innerHTML = companyName
    //    document.getElementById("lblCompanyName").value=document.getElementById("companyNameList").value;
        <?php echo "hi";?>
}
</script>

请注意,<?PHP echo 'hi'; ?>只会在JS中输出"hi",这毫无意义,可能会导致JS错误。你应该像这个一样使用它

<script type="text/javascript">
function showResult()
{
    var companyName = companyNameList.value;
    var insertvalue = d.getElementById('lblCompanyName');
    insertvalue.innerHTML = companyName
    //    document.getElementById("lblCompanyName").value=document.getElementById("companyNameList").value;
        <?php echo "alert('hi');";?>
}
</script>

我希望这些能解决你的问题

编辑

为下拉列表提供一个id,选择companyNameList

<script type="text/javascript">
    function showResult()
    {
        <?php echo "alert('hi');";?>
        var companyName = document.getElementById("companyNameList");
        var companyNameValue = companyName.options[companyName.selectedIndex].value;
        var insertvalue = document.getElementById('lblCompanyName');
        insertvalue.innerHTML = companyNameValue;
    }
</script>

请在您的firefox中安装firebug以捕获脚本中的任何错误

编辑完整代码

检查此代码

<?php
$link = mysqli_connect('localhost', 'root', '','xerox_test');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
$statement = "SELECT * from form_results";
$result = mysqli_query($link,$statement);
$placement= array(); 
$i=0;
while($row = mysqli_fetch_array($result))
{    
    $rowktl[$i] = $row;
    $placement[$i]['company_name'] = $rowktl[$i]['company_name'];
    $i++;
   }
?>
<html>
<head>
<script type="text/javascript">
    function showResult()
    {
        <?php echo "alert('hi');";?>
        var companyName = document.getElementById("companyNameList");
        var companyNameValue = companyName.options[companyName.selectedIndex].value;
        var insertvalue = document.getElementById('lblCompanyName');
        alert(companyNameValue);
        insertvalue.innerHTML = companyNameValue;
    }
</script>
</head>
<body>
<form method="post" action="">  
<p>Select the data</p> 
<?php
echo '<select name="companyNameList" id="companyNameList" onchange="showResult()" >';
for ($row = 0; $row < 2; $row++)
{
    echo '<option value="'.$placement[$row]["company_name"].'">'.$placement[$row]["company_name"].'</option>';
}
echo '</select>';
?>
<br>
<input name="Submit" type="button" class="Submit" value="Submit"  onClick="showResult()" />
<table border=2>
    <tr>
        <td>Case Number <br></td>
        <td>Technican ID <br></td>
        <td>Company Name <br><label id="lblCompanyName">Here</label> </td>
    </tr>
    <tr>
        <td>Model Number <br></td>
        <td>Machine Serial Number<br></td>
        <td>Company Address<br></td>
    </tr>
    <tr>
        <td>Customer Name<br><?php echo json_encode($placement[0]['customer_name']);?></td>
        <td>Customer Email<br></td>
        <td>Contact Number<br></td>
    </tr>
    <tr><td colspan=3>Remark<br></td></tr>
</table>
</form>
</body>
</html>

我在循环上方的php代码中添加了id="companyNameList"<select>。还更新了JS函数。

现在,如果你使用这个,你能在警报中看到选定的值吗?如果您看不到,这意味着我们还没有得到选定的值。如果看到正确的值,则表示赋值不正确。

javascript不是问题,我为您做了一个简单的js fiddle,我认为问题在于您的php代码及其生成的内容。你能发布php代码呈现的完整html吗?

我认为$placement[$row]['company_name']可能不包含字符串。

这是jsfiddle给你看的js。http://jsfiddle.net/HWFQH/1/

否则,如果它在您的view/html代码中,您可能会更容易阅读它。

<select name="companyNameList" onchange="showResult()">
<?php for ($row = 0; $row < 2; $row++):?>
     <option value="<?php echo $placement[$row]["company_name"];?>">
          <?php echo $placement[$row]["company_name"];?>
      </option>
<?php endfor;?>
</select>