Ich habe eine PHP-Datei, die den letzten Preis und die Beschreibung des Artikels bei Auswahl eines Artikelcodes aus einer Dropdown-Liste abruft.Abrufen von Daten mit Ajax
Die Ausgabe:
Wenn die Anforderung auf dem vorderen Ende gebildet wird, wird die Anforderung an die Verarbeitungs Seite gesendet, die eine JSON Daten zurückgibt.
Es funktioniert perfekt auf meinem lokalen Windows-Server. Nach der Migration auf einen Server Live Windows, wirft er den Fehler wie folgt aus:
SyntaxError: JSON.parse: unexpected character at line 1 column 9 of the JSON data var data4=JSON.parse(data4);
Wenn ich das Element mit Firebug auf Firefox-Browser kontrollieren, ich feststellen, dass die Verarbeitung Skript 200K OK 581ms
zeigt, die die Verarbeitung Skript anzuzeigen, fein. Aber unter dieser ist dieser Fehler von:
SyntaxError: JSON.parse: unexpected character at line 1 column 9 of the JSON data var data4=JSON.parse(data4);
Wenn ich weiter geprüft, um die Verarbeitung Skript, das in Ordnung ist, auf der Antwort und HTML-TAB, zeigt das erwartete Ergebnis, die angeblich zeigen auf der anfordernden (Front-End) Seite.
Ich brauche Hilfe, herauszufinden, warum das passiert. Bitte finden Sie die folgenden Seiten.
Front-end-Seite Skript:
<script type="text/javascript" src="includes/scripts/newJquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("select.partno").change(function(){
var selectedCustomer = $(".partno option:selected").val();
$.ajax({type: "POST",url:"process-grpid.php",data:{custid:selectedCustomer}}).done(function(data4){
var data4=JSON.parse(data4);
//using php-mysql before
if(data4.sta == 0){
$("#desc").html(data4.ref);
$("#purch").html(data4.lprice);
}else{
$("#desc").html(data4.ref);
$("#purch").html(data4.lprice);
}
});
});
});
</script>
Prozess grpid.php Skript:
<?php
if(isset($_POST["custid"])){
include 'includes/session.php';
include 'includes/db_connection.php';
include 'includes/functions.php';
$partid = $_POST["custid"];
if($partid !== 'Select PartNo'){
$gets = "SELECT * FROM tab_stock WHERE itemName='".$partid."'";
$get = mysqli_query($connection,$gets);
$row = mysqli_fetch_array($get);
$desc = $row['description'];
$lprice = $row['Rate'];
if($partid=='N/A'){
$res["sta"]=0;
$res["ref"]="<input type='text' class='desc' name='descr' size='50' required='required'/>";
$res["lprice"]="<input type='text' id='puch' name='lastpur' required='required'/>";
}else{
$res["sta"]=1;
$res["ref"]="<input type='text' value='$desc' class='desc' name='descr' size='50' readonly='readonly' required='required'/>";
$res["lprice"]="<input type='text' id='puch' name='lastpur' value='$lprice' readonly='readonly' required='required'/>";
}
echo json_encode($res);
}
}
'var data4 = JSON.parse (data4)' -> Sie haben die Variable data4 nicht definiert und trotzdem eine Funktion darauf ausgeführt? –
@SuperCoolHandsomeGelBoy Es wird ein Funktionsparameter schattiert. – gcampbell
Zuerst löschen Sie die Var. Zweitens, zeigen Sie den Code in Fiddle, so dass wir leichter debuggen können, oder direkt mit uns auf Ihre Website –