javascript — сценарий JAVA var с двойными кавычками в PHP и обратно для автоматического заполнения

У меня есть форма HTML / PHP, которая использует функцию JAVA SCRIPT для отправки (POST) входного содержимого в код PHP, который выполняет запрос и возвращается к функции JAVA SCRIPT с данными для автоматического заполнения дополнительных входных данных в форме.

Все это работает отлично когда входной контент, который я отправляю, представляет собой простой текст, даже если в содержимом он работает с одинарной кавычкой.

НО, как только двойные кавычки включены во входной контент, он не может вернуть результаты автоматического заполнения.

Ценим вашу помощь с указанием, где я могу потерпеть неудачу с прохождением кавычек.
Спасибо

  • Просто чтобы было понятнее, код работает, если имя клиентаIntel» или же «Int’el«, но это не удается, когда имя клиента»Int «эль«

Здесь JAVA SCRIPT Функция, которая отправляет и получает данные из PHP:

!--Script Auto fill ltd by customer -->
<script type="text/javascript">
function updatefrm() {
setTimeout(function(){
var customer = $('#customer').val();
if ($.trim(customer) !='') {
$.post('customerfill.php', {customer: customer}, function(data) {
$('#customerupdate').val(data['customer']);
$('#ltdupdate').val(data['ltd']);

});
}
}, 10);
}
</script>

Здесь PHP код, который получает данные POST, выполняет запрос и отправляет обратно массив для автоматического заполнения JAVA SCRIPT:

<?php
if (!empty($_POST['customer'])) {

$DB_Server = "localhost"; // MySQL Server
$DB_Username = "XXXX"; // MySQL Username
$DB_Password = "XXXX"; // MySQL Password
$DB_DBName = "XXXXXXXX"; // MySQL Database Name

$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Failed to connect to MySQL:<br />" . mysql_error() . "<br />" . mysql_errno());
// Select database
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Failed to select database:<br />" . mysql_error(). "<br />" . mysql_errno());
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');


$safe_name = mysql_real_escape_string(trim($_POST['customer']));

$query = mysql_query(" SELECT * FROM customers WHERE customer = '". $safe_name ."' LIMIT 1 ");

if (mysql_num_rows($query) > 0) {
$row = mysql_fetch_assoc($query);
json($row);
} else {
json(null);
}
}

function json ($array) {
header("Content-Type: application/json");
echo json_encode($array);
}

-1

Решение

я думаю, что ваш код JS в порядке, и я думаю, что ошибка в вашем коде PHP и в этой строке

$query = mysql_query(" SELECT * FROM customers WHERE customer = '". $safe_name ."' LIMIT 1 ");

так что вы должны использовать PDO Prepared Statement для безопасности и не сталкиваться с проблемой с двойной кавычкой

$dsn = "mysql:host=localhost;dbname=your_database;charset=utf8mb4";
try {
$pdo = new PDO($dsn, "database_username", "database_password");
} catch (Exception $e) {
echo "no connection";
exit();
}

$stmt = $pdo->prepare("SELECT * FROM customers WHERE customer = :customer LIMIT 1");
$stmt->execute(array(":customer"=>$safe_name));
$row = $stmt->fetch();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]