【问题标题】:Post a different textbox value from input type=textbox to PHP将输入类型=文本框中的不同文本框值发布到 PHP
【发布时间】:2014-05-09 08:33:05
【问题描述】:

我的网站上有一个 ajax 搜索,它用搜索结果填充 HTML 文本框。这很好用。但我想做的是在文本框中显示文章的文本,但将文章的 id 传递给 $_POST 以保存到数据库中。

我使用的JS是:

<script type="text/javascript">
    $(function(){
    $(".search").keyup(function() 
    { 
    var searchid = $(this).val();
    var dataString = 'search='+ searchid;
    if(searchid!='')
    {
            $.ajax({
            type: "POST",
            url: "search.php",
            data: dataString,
            cache: false,
            success: function(html)
            {
            $("#result").html(html).show();
            }
            });
    }return false;    
    });

    jQuery("#result").live("click",function(e){ 
            var $clicked = $(e.target);
            var $name = $clicked.find('.name').html();
            var decoded = $("<div/>").html($name).text();
            $('#searchid').val(decoded);
    });
    jQuery(document).live("click", function(e) { 
            var $clicked = $(e.target);
            if (! $clicked.hasClass("search")){
            jQuery("#result").fadeOut(); 
            }
    });
    $('#searchid').click(function(){
            jQuery("#result").fadeIn();
    });
    });
</script>

我的 search.php 文件如下所示:

   <?php

    if($_POST)
    {
        $q = $_POST['search'];
        $sql_res = mysql_query("SELECT id,title,author,DATE_FORMAT(added,'%b %e, %Y') AS added FROM news WHERE title LIKE '%$q%' ORDER BY id LIMIT 5");

        while($row=mysql_fetch_array($sql_res))
        {
            $title = $row['title'];
            $author = $row['author'];
            $added = $row['added'];
    ?>

    <div class="show">
        <span class="name"><?php echo $title; ?></span>&nbsp;<br/><span class="showdate">Addded: <?php echo $added; ?></span>
    </div>

    <?php
        }
    }
    ?>

最后 HTML 看起来像这样:

<div class="block">
<label>master article</label> 
    <input type="text" name="MasterID" maxlength="16" id="searchid" class="search" placeholder="Search for the master article">
</div>

<div id="result"></div> 

问题是文本框显示标题,这很好,但我想发布 id。我感觉如此接近,并认为我也许可以使用隐藏的输入类型,但不确定如何填充它。

提前感谢您的帮助!

【问题讨论】:

  • 你想什么时候发什么id?
  • 在while循环中为id创建一个新对象,如下所示 $id = $row['id'];在您看来,您可以回显 () 并存储在隐藏字段中。你被困在哪里了?
  • 啊,是的,我需要在 search.php 中附加我的 PHP 来设置变量 $articleid = $row['id'];因此发送 $articleid
  • stop using mysql_* functions。它们不再被维护并且是officially deprecated。改为了解prepared statements,并使用PDO

标签: php jquery ajax post textbox


【解决方案1】:

所以我做的是这个。在 search.php 中添加文章 id 变量:

$artid = $row['id']; 

并将 div 显示块更改为:

<div class="show" align="left">
<span class="name"><?php echo $artid; ?></span> - <span class="showname"><?php echo $title; ?></span>&nbsp;<br/><span class="showdate">Addded: <?php echo $added; ?></span>
</div> 

因为 Ajax 使用跨度 class="name" 内的任何内容填充文本框。

这对我有用。感谢您的想法!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2020-03-12
    • 2014-05-30
    相关资源
    最近更新 更多