Ajax代码无法在safari和firefox中运行

时间:2018-01-17 06:31:34

标签: javascript php ajax safari mozilla

用于从数据库切换语言的Ajax代码在safari和Firefox中不起作用,但它完美地处理了chrome和edge。 Safari不会响应ajax调用,但在firefox中它只能在很多尝试更改语言后才能工作。

我的代码是

<?php

session_start();
if($_SESSION)
{
$bid=$_SESSION['latest'];
}
else
{
$bid=1;
}

?>

<select name="sources" id="language_id" onclick="" onchange="location.reload();langchange();">
<?php
$language = mysqli_query($link, "select * from language_reference");
while ($lang = mysqli_fetch_array($language)) {
?>
    <option value="<?php echo $lang['lang_id']; ?>"
    <?php
   if($lang['lang_id']==$bid)
   {
       echo 'selected="selected"' ;
   }
   ?>
    ><?php echo $lang['lang_name']; ?>
    </option>
 <?php } ?>
</select>


<div class="row" >
<?php
$result = mysqli_query($link, "SELECT * FROM category AS c INNER JOIN category_language AS cl ON c.id=cl.category_id where parent_id IS NULL && lang_id='1' ");
$var = 0;
while ($row = mysqli_fetch_array($result))
{
?>
    <div class="col-md-3 col-sm-3 col-xs-6 hvr-shrink" style="position: relative; margin-top: 50px;">
    <a href="#" style="text-decoration: none;">
      <div>
         <img src="admin/uploads/category/<?php echo $row['cat_home_image']; ?>" class="img-responsive center-block" width="50px" />
         <p class="category-caption" style="padding-top: 20px; text-align: center;" id="cat_desc<?php echo $var; ?>"></p>
      </div>
   </a>
</div>
<?php
$var++;
}
?>

ajax脚本

<script>
 function langchange() {
 var language_id = $('#language_id').val();
 $.ajax({
     type: "POST",
     url: "ajax_lang_change.php",
     data: "id=" + language_id,
     success: function (value)
     {
        var data = value.split("|_,_|");
        for (var i = 0; i < data.length; i++) {
            $("#cat_desc" + i).html(data[i]);
        }
     }
 });

 $.ajax({
    type: "POST",
    url: "ajax_get_session.php",
    data: "bid=" + language_id,
    success: function (value) {
     var data = value;
    }
 });
 }
 $(window).ready(function () {
    langchange()
 });

</script>

用于从db获取数据的php脚本

ajax_lang_change.php

<?php
include 'db_connect.php';
$id = $_POST['id'];
$result = mysqli_query($link, "SELECT * FROM category AS c INNER JOIN category_language AS cl ON c.id=cl.category_id where parent_id IS NULL && lang_id='$id'");
while($row=mysqli_fetch_array($result))
{
echo $row['category_description']."|_,_|";
}

?>

ajax_get_session.php

<?php
include 'db_connect.php';
session_start();

$bid = $_POST['bid'];

$_SESSION['latest']=$bid;

if(isset($_SESSION['latest']))
{
  echo 'success';
}
else
{
  echo 'failed';
}
?>
无论如何都有解决这个问题的方法吗?我应该为各种浏览器编写ajax脚本吗?

0 个答案:

没有答案