繁体   English   中英

Javascript mysql接口?

[英]Javascript mysql interface?

我将从几周前开始使用基于Web的文档编号系统。 总而言之,用户输入项目,类,基础和破折号(PPP-CCC-BBBB-DDD),然后将其添加到mysql数据库中。 现在,大多数文档编号根据修订顺序排列。 IE:文档1465-630-0001-000在修订后变为1465-630-0002-000。

老板希望系统在检测到用户正在输入修订的文档时自动为基数填充输入文本框。 因此,如果用户在项目字段中输入1465,在类字段中输入630,则系统应使用下一个可用编号自动填充基本字段。 在前面的示例中,该值为0002。

它需要能够在数据库中搜索前两个字段,以便可以找到下一个可用字段。 无论如何,要使用javascript或其他方式执行此操作? 因此,对于我最后一个与此系统有关的javascript问题,确实很有帮助。

如果有帮助,这是我的一些代码:

`?>

<div id='preview'></div>
<form id='item' action="submit.php?item=1" method="post">
Enter Title:<input type="text" name="title" size="20"><BR>

Choose Project Code:
<SELECT NAME="project">
        <OPTION VALUE="">Project...
        <?
        $query  = "SELECT * FROM project ORDER BY project asc";
        $result = mysql_query($query);
        while($row = mysql_fetch_assoc($result))
            {
            $num = ($row['project']);
            $name = ($row['description']);
            ?>
            <OPTION VALUE="<?=$num?>" ><? echo"{$num}" . " | " . "{$name}";?>
            <?
            }
            ?>    
</SELECT><BR>

Choose Class Code:
<SELECT NAME="class">
            <OPTION VALUE="">Class...
        <?
        $query  = "SELECT * FROM class ORDER BY class asc";
        $result = mysql_query($query);
        while($row = mysql_fetch_assoc($result))
            {
            $num = ($row['class']);
            $name = ($row['description']);
            ?>
            <OPTION VALUE="<?=$num?>" ><? echo"{$num}" . " | " . "{$name}";?>
            <?
            }
            ?> 
</SELECT><BR>

Assigned Base Number:<input type="text" name="base" size="20"><BR>
Enter Dash Number:<input type="text" name="dash" size="20"><BR>
Enter Comments:<input type="text" name="comment" size="40"><BR>
<input type="hidden" name="item" value="1"/> `

只是一个简单的html / php输入表单,其中包含从与每个数据库有关的项目和类代码列表。

感谢您的帮助-托马斯

更新:
因此,您将需要对一些PHP脚本进行AJAX调用(请参见下面我的评论中的示例),该脚本将检索所需的基本值,然后将其返回给AJAX请求。 请求得到响应后,您可以使用该数据以我最初所说的方式填写值...

附带说明一下,由于我给您的示例是一个jQuery AJAX函数,您可能应该查看如何使用jQuery选择页面上的元素,而不是使用纯JS。

例如,通过ID获取和替换值:

    $("#base").attr('value', valueFromAjaxCall);

如何使用JS更改值:
如果您使用PHP来获取要填充到该字段中的基本值,则可以使用以下命令填充该值:

    var baseField = document.getElementsByName("base")[0];
    baseField.value = <?=$baseValue?>;

getElementsByName()调用返回一个数组,这就是为什么必须索引到所需字段的原因。 我建议给您的<input>一个ID,以便您可以改用document.getElementById() 您将执行以下操作:

    <input type="text" id="base" size="20">

和获取输入元素的JS将是:

    var baseField = document.getElementById("base");

...因此,如果您用相同的名称命名任何字段,则无需索引。

**不确定PHP语法。

以第三个字段为焦点的ajax调用将前两个字段的值发送回服务器?

首先,您可能要使用jQuery,因为它具有强大的支持,易于使用,并且对使用PHP的人会感到熟悉。

因此,请包括您可以从以下网站获得的jQuery javascript代码: http : //jquery.com/

然后,假定形式如下:

{form}
<input type=text id='major' name='major' value=''>
{Or a select, your choice}
<input type=text id='minor' name='minor'>
{or a select again}
<input type=text id='sequence' name='sequence' onFocus='getNextSequence()'>
...
{/form}

在你的头上,有你的javascript:

 function getNextSequence(){  
    var major=$('#major').val();  
    var minor=$('#minor').val();  
    if(!major){  
        alert('Select a major version#');  
        $('#major').focus();  
        return(false);  
    }  
    if(!minor){  
        alert('Select a minor version#');  
        $('#minor').focus();  
        return(false);  
    }  
    $.getJSON('http://url.to.getnextNumber.php',
        {major:major,minor:minor},
        function(data){  
            if(!data.error){  
                $('sequence').val(data.nextSequence);  
            }else{  
                alert(data.error);  
            }  
        }
    });  
}  

jQuery getJSON调用将使用两个$_POST变量,major和minor来调用您的URL。 进行查询,将结果保存为$result=array('nextSequence'=>$x,'error'=>'false'); 并使用echo json_encode($ result);将其转换为JSON。 不要在该文件的输出中包含任何标题或任何其他内容,jQuery会提取正确的值并将其插入应该放置的位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM