[英]Incrementing $_SESSION index in jquery
<?php
session_start();
$j=0;
?>
<form class="contact100-form validate-form" action="step-3.php" >
<div class="wrap-input100 validate-input bg1 rs1-wrap-input100">
<div class="contact100-form-btn" id="add_driver">
<span>
Add another Driver
<i class="fa fa-long-arrow-right m-l-7" aria-hidden="true">
</i>
</span>
</div>
</div>
</form>
<script>
$("#add_driver").click(function () {
$( "#add_driver_section").replaceWith( "<div class='wrap-input100 validate-
input bg1 rs1-wrap-input100' data-validate = 'Enter Your First Name'> <span
class='label-input100'>Firstname *</span> <input class='input100'
type='text' name='name[]' placeholder='Enter Your First Name ' <?php
if(isset($_SESSION['name'][++$j])){echo "value='".$_SESSION['name']
[$j]."'";}?> ></div>");});
</script>
$_SESSION['name']
是具有多個值的數組。 我需要增加$j
的值,以便每次單擊add_driver
時獲得新的索引$_SESSION['name']
。 該代碼僅在第一次時有效。 其余時間它會打印與第一次相同的值。 由於公司規則,我無法向您顯示其余的代碼或屏幕截圖。 請告訴我我的代碼出了什么問題以及如何實現我要尋找的內容。 我只想要一些增加索引的方法。 先感謝您。
$ _SESSION是服務器變量,因此如果不與服務器進行交互,則不能在客戶端更改它。 我建議您使用AJAX。 單擊該按鈕時,AJAX請求將加載一個空白頁面,該頁面會增加$ _SESSION變量。 (同樣,您還必須將$ j存儲為會話變量,因此您可以對其進行跟蹤)
因此,例如:
在一個名為myFile.php的文件中,您增加索引並檢索該索引中的名稱。
<?php
//this file just increases j everytime is loaded
session_start();
if (isset($_SESSION['j'])){
$_SESSION['j']++;
} else {
$_SESSION['j'] = 0;
}
$result['name'] = $_SESSION['name'][$_SESSION['j']];
die(json_encode($result));
然后在您的按鈕:
$("#myButton").click(function (evento) {
jQuery.ajax({
url: "myFile.php",
dataType: "json",
method: "POST",
data: {},
success: function (data) {
alert("The name[j] is " + data.name)
// do here what you did in your button before
// DONT use PHP echos here, use the data.name variable to access the $_SESSION['name'][$j] value
}
});
});
請記住 ,PHP是前置處理器,因此,當頁面在客戶端加載時,無論何時打印的PHP都是常量。 因此您不能使用回顯的值並使它們更改。
還有另一種方法,就是發送所有$ _SESSION ['name']變量並在客戶端使用它。 問題是, 如果用戶加載頁面后$ _SESSION ['name']更改,那么他將不會注意到。 就像這樣:(未經測試,請原諒語法錯誤)
<script>
var names = JSON.parse("<?php echo json_encode($_SESSION['name']); ?>");
var count = 0;
$("#add_driver").click(function () {
count++;
alert("now the name you needed is here: " + names[count]) //you have the name in names[count], do what you will
});
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.