2013-10-05 84 views
0

我已經找到解決方案剛剛添加onclick提交按鈕更新值在隱藏field.As我得到隱藏字段值的頁面越來越顯示和分頁錨點我已經習慣顯示分頁,因爲我onclick帕金()頁碼傳遞給帕金功能,其中我用阿賈克斯發佈pageno和限制問題是我得到ajax數據的限制$ _POST ['limits'],但不能得到pageno的價值作爲爲什麼我使用$ _POST ['pageno']?發佈變量隱藏字段不更新在php

for($i=1; $i<=$pages; $i++) 
echo '<td id="'.$i.'"><a href="javascript:void(0);" class="pagenav" id="but'.$i.'" style="cursor: hand;cursor: pointer;font-size:18px" onclick="javascript: pagin('.$i.'); ">'.$i.'</a></td>';} 



<script> 
      function pagin(value){ 
    var f = document.getElementById('pageno').value=""; 
var option = document.getElementById('mydisplaylimits').value=""; 
var limits = document.getElementById('limits').value; 
var pageno = document.getElementById('pageno').value = +value; 

     $.ajax({ 
    type: "POST", 
    url: "page.php", 
    data: { 
     limits: limits, 
pageno: pageno 
    }, 
    success: function() { 


    } 
}); 
    } 
    //--> 
    </script> 


<form action="page.php" method="post" id="pagination" name="pagination"> 
    <input type="HIDDEN" value="" id ="limits" name="limits"> 
    <input type="HIDDEN" id="pageno" value="" name="pageno"> 
    <select style="border: 2px outset rgb(204, 51, 0);" size="1" name="mydisplaylimit" id="mydisplaylimit" > 
    <option value="5" selected="selected" id="mydisplaylimits" >5</option> 
    <option value="10" id="mydisplaylimits" value="10" >10</option> 
    <option value="20" id="mydisplaylimits" >20</option> 
    <option value="50" id="mydisplaylimits" >50</option> 
    </select><input type="SUBMIT" value="GO" style="border: 2px outset rgb(204, 51, 0);" class="form_enter" onclick="$('#limits').val($('#mydisplaylimit').val())"></form> 
+1

如果你想發佈而不刷新你必須使用AJAX。順便說一句,ID必須是唯一的,你不能有'id =「mydisplaylimits」'多個元素。 – Barmar

+0

的確,事實上,我從來沒有看到選擇「選項」中的ID字段,我很確定選項甚至不支持id字段,儘管我可能會誤解。另外,這個問題很難理解。 – tremor

+0

@Barmar我用\t var pageno = document.pagination.pageno.value = + value; \t document.pagination.submit();但它提交下拉默認值。 – pramodhkumar

回答

0

我不明白你爲什麼需要隱藏的輸入。只需將<select>中的默認選項設置爲已發佈的值即可。

<form action="page.php" method="post" id="pagination" name="pagination"> 
    <input type="HIDDEN" id="pageno" value="" name="pageno"> 
    <select style="border: 2px outset rgb(204, 51, 0);" size="1" name="mydisplaylimit" id="mydisplaylimit"> 
<?php 
$default_limit = isset($_POST['mydisplaylimit']) ? $_POST['mydisplaylimit'] : 5; 
foreach (array(5, 10, 20, 50) as $option) { 
    ?> 
    <option value="<?php echo $option ?>" <? if($option == $default_limit) { echo "selected"; } ?> > 
    <?php 
} 
?> 
    </select> 
    <input type="SUBMIT" value="GO" style="border: 2px outset rgb(204, 51, 0);" class="form_enter"> 
</form> 
0

很難理解你的問題在問什麼。我已經拿走了你的代碼,並整理了一些。我相信還有更多的改進可以輕鬆實現。

將此移至頁面HEAD區域而非正文區域。

<?php 
if isset($_POST['mydisplaylimit'])) { 
    $mydisplaylimit = $_POST['mydisplaylimit']; 
} 
else { 
    $mydisplaylimit = "some default value"; 
} 
?> 

你的表格現在應該看起來像這樣。

<form action="page.php" method="post" id="pagination" name="pagination"> 
    <input type="HIDDEN" value="<?php echo $mydisplaylimit;?>" id="limits" name="limits"> 
    <input type="HIDDEN" id="pageno" value="" name="pageno"> 
    <select style="border: 2px outset rgb(204, 51, 0);" size="1" name="mydisplaylimit" id="mydisplaylimit"> 
    <option value="5" selected="selected">5</option> 
    <option value="10">10</option> 
    <option value="20">20</option> 
    <option value="50">50</option> 
    </select> 
    <input type="SUBMIT" value="GO" style="border: 2px outset rgb(204, 51, 0);" class="form_enter"> 
</form> 
+0

當我提交表單並獲取隱藏字段的值作爲$ _post ['limits']它顯示在var_dump爲零,因爲我按第二次提交按鈕表單獲取value.yes我甚至已經嘗試了上面的方法結果是相同的tremor – pramodhkumar

+0

當您首次打開頁面時,由於您尚未提交表單,因此'$ _POST'中沒有值。因此,在您第一次提交之後,沒有任何東西會被放入隱藏領域。 – Barmar

+0

@Barmar如何在第一次提交時獲得價值?我已經使用onchange =「$('#limits').val($('#mydisplaylimit').val())並且它被更新,但問題是默認值沒有在隱藏字段中得到更新,因爲我們在select.my中使用onchange方法的疑問是如何獲得下拉框的默認值。對於英文不好的語言 – pramodhkumar