获取特定文本框的值

时间:2015-11-26 09:26:06

标签: php ajax session textbox

在这里,我使用session来存储多个文本框值。 但是,当我要从会话中获取时,我获得了会话中所有文本框的相同值。

我的代码:

if ($order_list) {
     $i = $start +1; 
     foreach ($order_list as $row) 
     {
?>
<input type="text" name="<?php echo $row['id']; ?>" class="txt" autocomplete="off" id="txtid_<?php echo $row['id']; ?>" value="<?php if(isset($_SESSION['txtval'])) { echo $_SESSION['txtval'];} ?>">
<?php } ?>

在javascript中:

$(document).on('blur','.txt',function(){
    var myVar = $(this).val();

    //alert(myVar);
    $.ajax({
            type: "GET",
            url: "view_orders_checked_array.php",
            data: {account: myVar, task: 'alltxt'},
            async: false
        });
 });

在view_orders_checked_array.php中:

$task = $_GET['task'];
    if($task == "alltxt")
    {

        $_SESSION['txtval'] = $account;
    }

在这里,我没有得到特定文本框的价值。我得到了我上次插入的值。 我哪里错了?

3 个答案:

答案 0 :(得分:2)

检查以下工作代码,如果您只是使用 txtval 传递了ID,并为每个 id 值创建会话。现在,当您打印会话数组时,您将获得会话数组中的所有键值。请问是否难以理解。

<强>的Javascript

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<?php
session_start();
$_SESSION['txtval'] = '';
$order_list[0] = array('id'=>'1');
$order_list[1] = array('id'=>'2');
$order_list[2] = array('id'=>'3');
$order_list[3] = array('id'=>'4');

$start = '';
if ($order_list) {
    $i = $start + 1;
    foreach ($order_list as $row) {
        ?>
        <input type="text" name="<?php echo $row['id']; ?>" class="txt" autocomplete="off"
               id="txtid_<?php echo $row['id']; ?>" value="<?php if (isset($_SESSION['txtval'])) {
            echo $_SESSION['txtval'];
        } ?>">
    <?php }
}?>

<script type="text/javascript">
    $(document).on('blur','.txt',function(){
        var myVar = $(this).val();
        var myVarid = this.id;
        $.ajax({
                type: "GET",
                url: "view_orders_checked_array.php",
                data: {account: myVar, task: 'alltxt', id: myVarid },
                async: false,
                success:function(data){
                    console.log(data);
                }
            });
     });
</script>

PHP文件view_orders_checked_array.php

<?php
session_start();
$task = $_GET['task'];
if ($task == "alltxt") {

    $_SESSION['txtval'][$_REQUEST['id']] = $_REQUEST['account'];
}
echo '<pre>';print_r($_SESSION['txtval'] );echo '</pre>';
die('Call');

答案 1 :(得分:1)

你必须在会话中维护数组,这样你就可以借助ids

来做
- (IBAction)addPrinter:(id)sender {

     NSString* validIPRegEx = @"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
     NSRegularExpression *regex = [NSRegularExpression
                                  regularExpressionWithPattern:validIPRegEx
                                  options:0
                                  error:nil];
     NSUInteger numberOfMatches = [regex numberOfMatchesInString:_printerIPAddress.text options:0 range:NSMakeRange(0, [_printerIPAddress.text length])];
    if (numberOfMatches!=1) {
        UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Error"
                                                              message:@"Invalid IP Address"
                                                             delegate:nil
                                                    cancelButtonTitle:@"OK"
                                                    otherButtonTitles: nil];
        [myAlertView show];
    }
}

并在您的view_orders_checked_array页面中

 var id=your loop id;
 data: {account: myVar, task: 'alltxt',id:id },

并在您的代码中

$task = $_GET['task'];
$id=$_GET['id'];
if($task == "alltxt")
{

    $_SESSION['txtval'][$id] = $account;
}

我建议您使用 <input type="text" name="<?php echo $row['id']; ?>" class="txt" autocomplete="off" id="txtid_<?php echo $row['id']; ?>" value="<?php if(isset($_SESSION['txtval'])) { echo $_SESSION['txtval'][$row['id']];} ?>"> 方法传递值

答案 2 :(得分:0)

问题是您在所有文本字段中添加相同的值

$_SESSION['txtval'] 
循环中的

始终是相同的。

修改

而且我认为你得到的是最后一个插入值,因为相反要将所有文本字段存储在数组$ _SESSION [&#39; txtval&#39;] [&#39; another_id_key&#39;]中,而是将它存储在$ _SESSION中[&#39; txtval&#39;]这只是一个值