POST с jQuery не работи в IE

  • Автор Автор ivo75
  • Начална дата Начална дата

ivo75

Registered
POST с jQuery не работи в IE, a в останалите браузъри работи

Ето jQuery кода

Код:
$(".model_id").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;

$.ajax
({
type: "POST",
url: "get_razmer.php",
data: dataString,
cache: false,
success: function(html)
{
$(".razmer_id").html(html);
document.getElementById("broy").disabled = true;
document.getElementById("ob6ta_cena").value="";
document.getElementById("broy").value="";
},
});

});
});

и PHP кода

Код:
if(isset ($_POST['id']))
{
$id=$_POST['id'];

$sql="SELECT DISTINCT razmeri.id, razmeri.razmer, stoki.razmer_id, stoki.model_id FROM razmeri INNER JOIN (modeli INNER JOIN stoki ON modeli.id = stoki.model_id) ON razmeri.id = stoki.razmer_id WHERE stoki.model_id='$id'";

$result1=mysql_query($sql);
while($row=mysql_fetch_array($result1))
{
$razmer_id=$row['id'];
$razmer=$row['razmer'];
//echo $razmer_id;

echo '<option value="'.$razmer_id.'">'.$razmer.'</option>';
}
}

Защо ли се получава така. Тествал съм го на Chrome, mozilla, Opera, safari на всичките работи, но в IE не.
 
Под новата v10 на IE сичко си бачка .. но при по-стратите .. нормално .. смисалл .. пробвай да замениш ajax функцията с $.post функцията .. примене така работи :) :idea: :?:
 
jQuery се грижат доста заради гадния IE и мога да кажа ,че дори под 6 работи всичко което съм правил , включително и post
сега конкретно в твоя код не знам , къде е проблема но пробвай в един чист html файл (под IE) да тестваш САМО $.post
после добавяй и останалия код и така ще изкочи проблема.
:)
 
Май наистина нещо се чупи. Преди малко качих кода на платен хостинг и там не работи дори и на останалите браузъри. На локалния работи без ИЕ. Сега поствам целия код

Код:
<?php require_once('../Connections/modeli.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
$today = date("m-d-y");
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO poracki (model_id, razmer_id, broy, cena, data_por) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['model_id'], "int"),
                       GetSQLValueString($_POST['razmer_id'], "int"),
                       GetSQLValueString($_POST['broy'], "int"),
                       GetSQLValueString($_POST['cena'], "double"),
                       GetSQLValueString($today, "date"));

  mysql_select_db($database_modeli, $modeli);
  $Result1 = mysql_query($insertSQL, $modeli) or die(mysql_error());
 $insertGoTo = "/bayram/admin/porachki.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
mysql_select_db($database_modeli, $modeli);
$query_rs_modeli = "SELECT * FROM modeli";
$rs_modeli = mysql_query($query_rs_modeli, $modeli) or die(mysql_error());
$row_rs_modeli = mysql_fetch_assoc($rs_modeli);
$totalRows_rs_modeli = mysql_num_rows($rs_modeli);

mysql_select_db($database_modeli, $modeli);
$query_rs_razmer = "SELECT * FROM razmeri";
$rs_razmer = mysql_query($query_rs_razmer, $modeli) or die(mysql_error());
$row_rs_razmer = mysql_fetch_assoc($rs_razmer);
$totalRows_rs_razmer = mysql_num_rows($rs_razmer);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
  <script type="text/javascript" src="js/jQuery.XDomainRequest.js"></script>
  
  
  
  
  
  <script type="text/javascript">

    function get_razmer(){
        $.ajax({
            type: "POST",
			url: "get_razmer.php",
            data:     "id=" + document.getElementById("model_id").value,
            success: function(html){
				$(".razmer_id").html(html);
document.getElementById("broy").disabled = true;
document.getElementById("ob6ta_cena").value="";
document.getElementById("broy").value="";
document.getElementById('cena').value = "";

   //document.getElementById('ob6ta_cena').value="";
              // $("#cena").html(html);
            }
        });
        
        }


    function get_cena(){
        $.ajax({
            type: "POST",
            url: "get_cena.php",
            data:     "model=" + document.getElementById("model_id").value + 
                    "&razmer=" + document.getElementById("razmer_id").value,
            success: function(html){
				$("#response").html(html);
				document.getElementById("broy").disabled = false;
				document.getElementById("ob6ta_cena").value="";
				document.getElementById("broy").value="";
              // $("#cena").html(html);
            },
			error: function doClear(){
				
				 $('#cena').text('');
			}
        });
        
        }

function ob6ta_cena1(){
     var   suma=(parseFloat(document.getElementById('cena').value)) * (parseInt(document.getElementById('broy').value));
        document.getElementById('ob6ta_cena').value=parseFloat(suma).toFixed(2) + " лв.";
		}
		
    </script>
</head>

<body>


<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
  <table align="center">
    <tr valign="baseline">
      <td colspan="2" align="center" nowrap="nowrap"><strong>Подай поръчка</strong></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Модел:</td>
      <td><select name="model_id" id="model_id" class="model_id" onchange="get_razmer(); ">
      <option selected="selected">--Избери модел--</option>
        <?php 
do {  
?>
        <option value="<?php echo $row_rs_modeli['id']?>" ><?php echo $row_rs_modeli['model']?></option>
        <?php
} while ($row_rs_modeli = mysql_fetch_assoc($rs_modeli));
?>
      </select></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Размер:</td>
      <td><select name="razmer_id" id="razmer_id" class="razmer_id" onchange="get_cena()">
        
       <option value="" > </option>
              </select></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Брой:</td>
      <td><input name="broy" type="text" disabled="disabled" id="broy" onkeyup="ob6ta_cena1()" value="" size="10"/></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Единична цена:</td>
      <td><div id="response">
      <input type="text" name="cena" value="" size="10" class="cena" disabled="disabled" id="cena" onchange="ob6ta_cena1()" onfocus="ob6ta_cena1()"/>
        
    </div></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Обща цена</td>
      <td><label for="ob6ta_cena"></label>
      <input name="ob6ta_cena" type="text" readonly="readonly" id="ob6ta_cena" size="15"/></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"> </td>
      <td><input type="submit" value="Добави" /></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>
<div id="response">
        
</div>
<p> </p>
</body>
</html>
<?php
mysql_free_result($rs_modeli);

mysql_free_result($rs_razmer);
?>

Ето 2 PHP файла към. които се поства

Код:
<?php require_once('../Connections/modeli.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>
<?php
//echo $_POST['model'];
if ($_POST['model'])
{
$model=$_POST['model'];
//$id=2;
$razmer =$_POST['razmer'];

$sql="SELECT DISTINCT razmeri.id, razmeri.razmer, stoki.razmer_id, stoki.model_id, stoki.cena FROM razmeri INNER JOIN (modeli INNER JOIN stoki ON modeli.id = stoki.model_id) ON razmeri.id = stoki.razmer_id WHERE stoki.razmer_id='$razmer' AND stoki.model_id='$model'";



//$sql="SELECT DISTINCT razmeri.razmer, razmeri.id FROM (stoki INNER JOIN razmeri ON stoki.razmer_id = razmeri.id) INNER JOIN modeli ON stoki.model_id = modeli.id WHERE stoki.model_id='$id'";
$result1=mysql_query($sql);
$row=mysql_fetch_array($result1);
$cena=$row['cena']; ?>

<input type="text" name="cena" value="<?php echo $cena; ?>" size="10" class="cena" id="cena" disabled="disabled"/> 
<?php
//echo $cena;
//echo $razmer_id;

}
?>



<?php require_once('../Connections/modeli.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<option selected="selected">--Избери размер--</option>
</body>
</html>
<?php
if(isset ($_POST['id']))
{
$id=$_POST['id'];
//$id=2;


$sql="SELECT DISTINCT razmeri.id, razmeri.razmer, stoki.razmer_id, stoki.model_id FROM razmeri INNER JOIN (modeli INNER JOIN stoki ON modeli.id = stoki.model_id) ON razmeri.id = stoki.razmer_id WHERE stoki.model_id='$id'";



//$sql="SELECT DISTINCT razmeri.razmer, razmeri.id FROM (stoki INNER JOIN razmeri ON stoki.razmer_id = razmeri.id) INNER JOIN modeli ON stoki.model_id = modeli.id WHERE stoki.model_id='$id'";
$result1=mysql_query($sql);
while($row=mysql_fetch_array($result1))
{
$razmer_id=$row['id'];
$razmer=$row['razmer'];
//echo $razmer_id;

echo '<option value="'.$razmer_id.'">'.$razmer.'</option>';
}
}
?>
 
Ако ползваш последна версия на jQuery няма да работи http://blog.jquery.com/2013/04/18/jquery-2-0-released/ и аз се сблъсках с този проблем скоро и ми отне около час докато разбера какво става. Просто си изтегли 1.9.1 версията.
 
От версия 1.6 май беше е спряна поддръжката. Ако искаш да правиш заявки вземи по-стара версия или потърси някакъв плъгин или нещо подобно
 

Back
Горе