Вывод Javascript Prompt() в функцию PHP
-
13-12-2019 - |
Вопрос
Я пытался получить пользовательский ввод из приглашения Javascript в функцию PHP и наткнулся на множество препятствий при этом.Я в растерянности, пытаясь использовать метод $.post jQuery, поскольку PHP просто не хочет выполняться, не знаю почему.
В любом случае, вот суть того, что я делаю в данный момент:
1 Проект и его данные загружаются из базы данных – эта информация отображается в таблице.
2 Все данные в таблице можно редактировать с помощью Javascript Prompt(), код, который я использую для этого, приведен ниже:
<div id="lvl3"><a href="" onclick="popupprompt(1); return false"><?php echo $fetchdata['name']; ?></a></div>
Вышеупомянутая работа как таковая:lvl3 — тег для стилизации шрифта;пустой href, чтобы он действовал как ссылка;popupprompt — это созданная мной функция подсказки, она принимает один аргумент, «тип» или то, что редактируется (1 для имени проекта, 2 для описания проекта и т. д.);верните false, чтобы страница не перезагружалась;php echo для отображения данных проекта в таблице.
3 Как только пользователь щелкает объект выше, он выполняет функцию javascript под названием popupprompt, принимающую аргумент «тип» или информацию о том, какая информация о проекте изменяется.код этой функции приведен ниже:
function popupprompt(type) {
switch(type)
{
case 1:
var name = prompt("Project Name:", "");
if (name != null && name != "")
{
//Change Project Name
var getname = name;
var gettype = type;
$.post("edit.php", { type: gettype, name: getname });
} else if (name == "") {
senderror("Please enter a valid Project Name");
} else {
//Prompt canceled
sendnotification('Canceled my ass!');
}
break;
case 2:
//Description?
case 3:
//Version?
case 4:
//Release?
default:
alert("There was an error processing your request.");
break;
} }
Проблема, с которой я столкнулся в этой функции, заключается в том, что ничего в edit.php не выполняется, и я понятия не имею, почему.Кроме того, мне пришлось изменить скобки, чтобы они правильно отображались в поле кода, так что не обращайте на это внимания.
4 В любом случае, теперь пользовательский ввод публикуется в edit.php, что не работает, но я все равно опубликую его:
<?php
$type = $_POST['type'];
$name = $_POST['name'];
switch($type) {
case 1:
dbconnect();
$urlext = geturlext();
$authenticated = isauthenticated();
if ($authenticated == false)
{
echo("<script>senderror('Access denied');</script>");
} else {
//Escape and trim input
$input = trim($input);
$input = mysql_real_escape_string($input);
$update = "UPDATE 'projects' SET 'name' = '$input' WHERE 'name' = '$urlext'";
$updatequery = mysql_query($update) or die(mysql_error());
echo("<script>sendnotification('Project Name updated');</script>");
}
break;
default:
break;
}
?>
Снова пришлось переместить некоторые скобки.Но в любом случае эта функция должна обновлять данные в базе данных, однако вместо этого она ничего не делает.Я разместил оповещения вначале, и они никогда не вызываются.
В любом случае, короче говоря, если вы знаете, что я делаю неправильно, пожалуйста, просветите меня, а также, если есть лучший способ сделать это, пожалуйста, дайте мне знать!
Я ценю всю помощь, спасибо
Решение
Выяснил это после удачной недели, проведенной в стороне.Я внимательно изучил это в Firebug, устранил опечатку, которая вызывала большинство моих проблем, а также синтаксическую ошибку MySQL.
Я не знаю почему, но моя собственная система отчетов об ошибках не работает при вызове из файла таким образом.Возможно, это еще одна вещь, которую я упускаю из виду, но Firebug определенно помог.
Спасибо тем, кто пытался помочь <3