Мне нужен способ извлечения данных из сценария обработки на страницу запроса с использованием Ajax, PHP. Код ниже показывает эту ошибку:Извлечь результат из процесса Ajax
SyntaxError: JSON.parse: unexpected character at line 1 column 13 of the JSON data
var data4=JSON.parse(data4);
Пожалуйста, обратите внимание, что у меня есть поиск, но не удалось найти решение. Итак, я подумал, что, возможно, есть способ передать результат на запрашивающую страницу, не используя json_encode
.
<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",
dataType: "json",
data: {
custid: selectedCustomer
}
}).done(function(data4) {
var data4 = JSON.parse(data4); //Error Area
//using php-mysql before
$("#desc").html(data4.ref);
$("#purch").html(data4.lprice);
});
});
});
</script>
<form>
<table>
<tr>
<th>Item Code/Part NO:</th>
<?php
include("db_connection.php");
$s = mysqli_query($connection,"SELECT * FROM tab_stock ORDER BY itemName ASC");?>
<td>
<select name="partno" class="partno">
<option>Select PartNo</option>
<option value="N/A">N/A</option>
<?php while($rw = mysqli_fetch_array($s)){ ?>
<option value="<?php echo $rw['itemName'];?>">
<?php echo $rw['itemName'];?>
</option>
<?php };?>
</select>
</td>
<th>Description:</th>
<td id="desc"></td>
</tr>
<tr>
<th>Last Purchase Price:</th>
<td id="purch"></td>
</tr>
</table>
</form>
Процесс-grpid.php (обработка сценария)
<?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);
}
}
?>
При запуске этого приложения, она показывает ошибку SyntaxError: JSON.parse: неожиданный символ в строке 1 колонки 13 JSON данные var data4 = JSON.parse (data4) Но при проверке с помощью Firebug в HTML и RESPONSE TAB отображается ожидаемый результат. Вопрос: какой альтернативный способ получить результат от скрипта обработки на запрашивающей странице, со значением uisng json_encode и JSON.parse (response)?
Может быть у вас есть белые-пространства после?> Пытаются убрать его –
@ KostyaShkryob: пробел после?> из какого сценария. Сценарий обработки или что? – Dave
@ JoseManuelAbarcaRodríguez: Да, у них есть правильный формат. – Dave