传递或发布输入值而不使用表单

时间:2014-02-11 08:44:36

标签: php jquery mysql ajax

我现在正在研究如何传递<input id="sub" name="sub">的值,该值的值为前3个字母的下拉选项文本。我需要传递或发布<input id="sub" name="sub">的值来处理我的查询。

当我选择下拉列表中的ITEquipment时,<input name="sub">会获得下拉选项文本的前3个字母。所以现在它具有ITE的价值,即我在查询中需要的东西。例如,在查询中,$ sub = $ POST [“sub”]等于ITE,因此我使用了LIKE函数,LIKE'$ sub - __'。希望你明白我要做的事。

如果不使用提交表单我怎么能这样做?

以下是我正在使用的http://jsfiddle.net/xqGLS/1/

的示例流程

请帮忙吗?

<?php
$mysqli = new mysqli("localhost", "root", "", "2015");
    $resultcode = $mysqli->query("SELECT category, id, maincode FROM category GROUP BY id ORDER BY maincode");
    $code = '';
     while($row = $resultcode->fetch_assoc())
        {
        $code .= '<option value = "'.$row['maincode'].'">'.$row['category'].'</option>';
        }   
?>
<form action="<?php $_SERVER['PHP_SELF']?>" method="POST">
<br/>
Category
<select name="maincode" style="text-transform:uppercase;" onchange = "GetChangedValue(this);">
<option value=""></option>
<?php echo $code; ?>
</select>
</br>
Sub Code
<input type="" name="sub1code" id="sub1code" value="" readonly style="width:45px;text-transform:uppercase;">

<script>
$('[name="maincode"]').change(function() {
   $('[name="sub1code"]').val($(this).val());
   var input = $('[name="sub"],[name="sub1"]'),
    input1 = $('[name="sub"]'),
    input2 = $('[name="sub1"]'),
    input3 = $('[name="equal"]');
    input.change(function () {
    input3.val(input1.val() + input2.val());
});
});
</script>

<script>
function GetChangedValue(e) {
var value = e.options[e.selectedIndex].text;
var elem = document.getElementById("sub"); elem.value = value.substring(0,3);
}
</script>

<input name="sub" id="sub" value="" style="width:35px;text-transform:uppercase;" readonly>

- 我的查询 -

<input id="sub1" name="sub1" style="width:35px;text-transform:uppercase;" value='
<?php

$result2 = $mysqli->query("SELECT * FROM code
WHERE sub1code LIKE 'SUP-___' ORDER BY sub1code");

while($row = $result2->fetch_assoc())
  {
  $value = $row['sub1code'];
  }
  $first = substr($value, 0, 4);
  echo $first;
  $last = substr($value, -3);
  $i="0";
  while($i<=$last)
  {
  $i++;
  }
  $value2=strlen($i);
    echo $first;
    if($value2==1)
    {
    echo "00".$i;
    }
    elseif($value2==2)
    {
    echo "0".$i;
    }
    else
    {
    echo $i;
    }
?>'>
<input id="equal" name="equal" value="" style="width:60px;text-transform:uppercase;" type="hidden">
<input type="submit" name="">
</form>

1 个答案:

答案 0 :(得分:0)

非常喜欢

$(document).ready(function(){
    $("#dd").change(function(){
        var v1 = $(this).val().substring(0,3);
        $.ajax({
            type : 'get',
            url : 'call.php',
            data : {varReq:v1}
        }).done(function(returnResult){
            alert(returnResult);
        });
    });
});

call.php将包含你的php / mysql脚本。要获得传递的值,应该通过$ _GET或$ _POST。但是你必须在你的jquery的ajax中包含正确的类型。

所以在我的例子中,我在我的php上只有一个虚拟的。

<?php
if(isset($_GET['varReq']))
{ 
    if($_GET['varReq'] == 'ABC') echo "AAAA";
    else echo "BBBB";
}
?>

它传递了这个html元素......

<h1>Example</h1><p>BBBB</p>

然后弹出消息(alert)将显示返回值。