У меня есть форма, и мне нужно отправить данные в файл. php. Я должен передать содержимое двух полей выбора, названных select_1 и select_2. У моей кнопки fiire есть вызов onclick = 'go ()'.
Мой код сценария выглядит следующим образом:
function go() {
var sel_1 = document.getElementById('select_1').value;
var sel_2 = document.getElementById('select_2').value;
$.ajax({
type: "POST",
url: "compute.php",
data: "select_1=" + sel_1 + "&select_2=" + sel_2,
dataType: "text",
success: function(data,status)
/* ------------ for debug I have an alert with a response ---- */
{
alert("passed data are: " + data + "\nStatus: " + status);
},
error: function(data,status)
{
alert("passed data are: " + data + "\nStatus: " + status);
}
});
}
На стороне php мои вычисления. php Файл имеет следующий код:
$selection_1 = $_POST["select_1"];
$selection_2 = $_POST["select_2"];
$sqladd = "INSERT INTO table SET column_1 = '$selection_1', column_2 = '$selection_2';";
if (mysqli_query($conn, $sqladd)) {
$resultadd= mysqli_query($conn, $sqladd);
// ------- then for debug purpose
echo "inserted row with col_1 --->" . $selection_1 . "<--- and col_2 --->" . $selection_2;
} else {
// ------- either, still for debug purpose
echo "not inserted. ";
echo "Error: " . mysqli_error($conn);
}
Теперь в окне предупреждения показано, что js правильно получил значения двух полей выбора, и я также получаю статус успеха, но моя отладка эхо от вычисления. php показывает пустые значения для selection_1 и selection_2 , и строка таблицы вставляется, но в вставленной строке столбцы таблицы пусты . Apache журнал показывает два уведомления: PHP Примечание: неопределенный индекс: select_1 при вычислении. php и PHP Примечание: неопределенный индекс: select_2 при вычислении. php. Таким образом, PHP не получает два значения POST. Что я делаю неправильно? У меня есть следующие правила и условия в .htaccess:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.php [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]
Могут ли они заблокировать POST? Если да, как я могу получить тот же результат, не блокируя POST? Мне нужно внешне перенаправить /dir/foo.php в / dir / foo и внутренне перенаправить / dir / foo в /dir/foo.php.