2015-04-01 111 views
3

//我的jQueryPHP代碼不工作

$(document).ready(function() { 
    var form = $('#form1'); // contact form 
    var submit = $('#submit1'); // submit button 
    var alert = $('.alert1'); // alert div for show alert message 

// form submit event 
form.on('submit', function(e) { 
    e.preventDefault(); // prevent default form submit 
    // sending ajax request through jQuery 
    $.ajax({ 
     url: 'giftcard_check.php', // form action url 
     type: 'POST', // form submit method get/post 
     dataType: 'html', // request type html/json/xml 
     data: form.serialize(), // serialize form data 
     beforeSend: function() { 
      alert.fadeOut(); 
      submit.html('Checking....'); // change submit button text 
     }, 
     success: function(data) { 
      alert.html(data).fadeIn(); // fade in response data 
      form.trigger('reset'); // reset form 
      submit.html('Apply'); // reset submit button text 
      var $container = $("#result1"); 
      var refreshId = setInterval(function() 
      { 
       $container.load("result.php?code=<?php echo $variable; ?>"); 
      }, 500); 
     }, 
     error: function(e) { 
      console.log(e) 
     } 
    }); 
}); 
}); 

同時使用內部jQuery的PHP代碼上面的代碼無法正常工作。如果IAM不使用PHP代碼,它的工作正常。但我想發送會話變量到另一個頁面(result.php)。我該如何解決這個問題。有沒有什麼方法。

+1

會話變量已在所有頁面可用只需在每個頁面啓動會話。 – 2015-04-01 07:04:39

+0

@SunilPachlangia: - 如果不是會話變量。再次看到我編輯的問題。 – 2015-04-01 07:06:31

回答

3

使用以下代碼。將php會話分配給javascript變量。確保這段代碼在PHP文件中。 PHP不會在裏面工作.js文件

var sessionID = "<?php echo $_SESSION['id']; ?>"; 
$(document).ready(function() { 
    var form = $('#form1'); // contact form 
    var submit = $('#submit1'); // submit button 
    var alert = $('.alert1'); // alert div for show alert message 

    form.on('submit', function(e) { 
    e.preventDefault(); // prevent default form submit 
// sending ajax request through jQuery 
    $.ajax({ 
     url: 'giftcard_check.php', // form action url 
     type: 'POST', // form submit method get/post 
     dataType: 'html', // request type html/json/xml 
     data: form.serialize(), // serialize form data 
     beforeSend: function() { 
     alert.fadeOut(); 
     submit.html('Checking....'); // change submit button text 
     }, 
     success: function(data) { 
     alert.html(data).fadeIn(); // fade in response data 
     form.trigger('reset'); // reset form 
     submit.html('Apply'); // reset submit button text 
     var $container = $("#result1"); 
     var refreshId = setInterval(function() 
     { 
      $container.load("result.php?code="+sessionID); 
     }, 500); 
     }, 
     error: function(e) { 
     console.log(e) 
     } 
    }); 
    }); 
}); 
+2

應該使用'var sessionId = <?php echo json_encode($ _ SESSION ['id']); ?>;' – DanFromGermany 2015-04-01 07:21:44

+0

@DanFromGermany爲什麼json_encode? – 2015-04-01 07:24:00

+2

出於以下兩個原因:1.自動類型聲明(帶有'「的字符串,int不帶,帶有[]的數組等等)2.用於自動轉義 – DanFromGermany 2015-04-01 07:27:41

1

讓我們來看看在不同的角度

你可以在你的HTML像這樣做:

<form> 
<input type="submit" id="f_the_world" data-session-id="<?php echo $variable; ?>"/> 
</form> 

然後在你的JS

$(document).ready(function() { 
    var form = $('#form1'); // contact form 
    var submit = $('#submit1'); // submit button 
    var alert = $('.alert1'); // alert div for show alert message 

// form submit event 
form.on('submit', function(e) { 
    e.preventDefault(); // prevent default form submit 
    // sending ajax request through jQuery 
    $.ajax({ 
     url: 'giftcard_check.php', // form action url 
     type: 'POST', // form submit method get/post 
     dataType: 'html', // request type html/json/xml 
     data: form.serialize(), // serialize form data 
     beforeSend: function() { 
      alert.fadeOut(); 
      submit.html('Checking....'); // change submit button text 
     }, 
     success: function(data) { 
      alert.html(data).fadeIn(); // fade in response data 
      form.trigger('reset'); // reset form 
      submit.html('Apply'); // reset submit button text 
      var $container = $("#result1"); 
      var refreshId = setInterval(function() 
      { 
       var code = $('#f_the_world').attr('data-session-id'); 
       $container.load("result.php?code=".code); 
      }, 500); 
     }, 
     error: function(e) { 
      console.log(e) 
     } 
    }); 
}); 
}); 

它只是不覺得正確的看到客戶端腳本上的服務器腳本

+0

當您將輸入用作隱藏時,爲什麼賦值給屬性?以值 – 2015-04-01 07:26:00

+0

如果他想把它放在一個按鈕?,我做了額外的信息,我知道OP知道,他可以把它放在價值,它的常識 – Ceeee 2015-04-01 07:29:21

+0

那麼,我可以改變我的例子 – Ceeee 2015-04-01 07:30:09

1

爲什麼您要將會話ID發送到下一頁...會話值在服務器中存儲爲 。您可以從任何頁面訪問會話值。

1

通過添加session_start(),我們可以很容易地在result.php中獲得會話變量。在result.php開始。這樣我們就可以訪問創建的會話變量。

1

第一步: 在您的jQuery代碼書寫頁面中,只需啓動會話變量$ _SESSION ['id']。

第二步: 在你的result.php頁面中,寫入session_start();在開始時。然後調用$ _SESSION ['id']。

希望這會有助於:-)