2013-07-11 4 views
0

На странице Я пытаюсь удалить кнопку удаления в форме обновления с другими функциями редактирования, и во всех попытках кажется, что я удаляю эту проблему.Удалить код, не работающий с соединительной кнопкой

Это ссылка на сайт, чтобы вы могли тест: http://exhibitjewellery.com/editstocktest.php (кнопка находится в настоящее время под «все части в серии» и щелкнув имя открывает форму в виде разборной панели)

Я использовал dreaweaver cs5 wizard, если это поможет понять, как выглядит остальная часть моего кода. Вы можете мне помочь?

<?php 
if (isset($_GET['delete'])) { 
echo 'Do you really want to delete ' . $_GET['delete'] . '? <a href="editstock.php?yesdelete=' . $_GET['delete'] . '">Yes</a> | <a href="editstock.php">No</a>'; 
exit(); 
} 
if (isset($_GET['yesdelete'])) { 
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1", 
        GetSQLValueString($_POST['id'], "int")); 

mysql_select_db($database_connectmysql, $connectmysql); 
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error()); 
header("location: editstock.php"); 
exit(); 
} 
?> 

выше код должен быть активирован с помощью этой кнопки:

<input name="delete" type="button" id="delete" value="delete" style="width:20%; float:right"/> 
+0

Где вы получаете '$ _POST ['id']' from? Он не отображается нигде в вашем коде здесь как переменная POST или как переменная GET. –

+0

Я доберусь до этого, прежде чем кто-то еще: не используйте mysql для новых проектов, потому что он устарел. Используйте ** mysqli ** или PDO. –

+0

хорошо, я попытался объединить код мастера Dreamweaver с другим o, я могу получить страницу подтверждения, и именно так это было так, чтобы быть честным, я не совсем понимаю. все, что я действительно хочу, это кнопка удаления с подтверждением. кнопка удаления, которую я могу скопировать и прошёл в другие таблицы без изменения кода, также будет отличным (глобальным?), но я не думаю, что это возможно ... – user2562865

ответ

-1

Попробуйте

<form action="" method="get"> 
    <input name="delete" type="submit" id="delete" value="delete" style="width:20%; float:right"/> 
</form> 

или

<input name="delete" type="button" id="delete" value="delete" style="width:20%; float:right" onclick="window.location.href = '?delete=delete'" /> 
+0

, так что код i хорош, что он ссылается на подтверждение, но затем я получил эту ошибку: Неустранимая ошибка: вызов неопределенной функции GetSQLValueString() в D: \ Хостинг \ 11204618 \ html \ editstock.php в строке 11 – user2562865

+0

Это не address basic problem здесь: идентификатор элемента не передается запросу, который выполняет удаление. –

+0

да, я знаю ... это сработает, если я заменил POST GET на этой строке? когда вы сказали, что он не нуждается в получении/сообщении, я не уверен, что понимаю, почему, потому что разве это не означает, что он содержит «идентификатор» на странице подтверждения? ах! смущенный! – user2562865

-1

Я знаю, это звучит как глупый вопрос, но вы используете HTML-форму? Кроме того, вы можете захотеть сделать тип входа «представить», а не «кнопку»

ака

<form action="" method="GET"> 
    <input type="submit" name="delete" id="delete" value="delete" style="width:20%; float:right"/> 
</form> 
+0

его форму обновления на php, которую я пытаюсь добавить, так что он действует отдельно от кнопки «Обновить». казалось, все испортило, когда у меня было два ubmits рядом с eachother, поэтому я просто хочу, чтобы delete был ссылкой – user2562865

+0

. Здесь не рассматривается основная проблема: идентификатор элемента не передается в запрос, который выполняет Удалить. –

0

Если вы посмотрите на исходный код в http://exhibitjewellery.com/editstocktest.php вы увидите, что ваша форма использует method="post"

<form action="/editstocktest.php?" method="post" name="form4" id="form4"> 

так что вы не можете нам $_GET -

if (isset($_GET['delete'])) {} 

также, в вашей ссылке Удалить, вы используете значение delete, но я думаю, что вы хотите id - $_POST['id']

наконец, при нажатии на эту ссылку $_POST['id'] не долго доступны для использования внутри if (isset($_GET['yesdelete'])), так что вам нужно добавить id к URL


редактировать 1
здесь один Рекомендованное способ изменить его, хотя он никогда не бывает хорошей идеей, чтобы удалить на основе покинуть URL. Было бы неплохо убедиться, что только администратор может получить доступ/удалить этот путь. Примечание. GetSQLValueString() - это созданная функция Dreamweaver, поэтому вам нужно обязательно указать файл, в котором это определено.

<?php 
if (isset($_POST['delete'])) { 
echo 'Do you really want to delete ' . $_POST['piece'] . '? <a href="editstock.php?yesdelete=' . $_POST['id'] . '">Yes</a> | <a href="editstock.php">No</a>'; 
exit(); 
} 
if (isset($_GET['yesdelete'])) { 
include('file where GetSQLValueString() is defined'); // you have to change **file where GetSQLValueString() is defined** to the file path 
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1", 
        GetSQLValueString($_GET['yesdelete'], "int")); 

mysql_select_db($database_connectmysql, $connectmysql); 
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error()); 
header("location: editstock.php"); 
exit(); 
} 
?> 

редактировать # 2
Поскольку вы хотите использовать onclick для выполнения функции удаления, вам нужно будет изменить ваш location.href и использовать $_GET.

вашей кнопка HTML

<input name="delete" type="button" id="delete" value="delete" style="width:20%; float:right" onclick="window.location.href = '?delete=delete&id=<?php echo $row['id']; ?>&piece=<?php echo $row['piece']; ?>'"/> 

Я не знаю, как вы заселять свои элементы формы, так что изменить $row['id'] & $row['piece'] вашего метода.

тогда ваша функция удаления -

<?php 
if (isset($_GET['delete'])) { 
echo 'Do you really want to delete ' . $_GET['piece'] . '? <a href="editstock.php?yesdelete=' . $_GET['id'] . '">Yes</a> | <a href="editstock.php">No</a>'; 
exit(); 
} 
if (isset($_GET['yesdelete'])) { 
include('file where GetSQLValueString() is defined'); // you have to change **file where GetSQLValueString() is defined** to the file path 
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1", 
        GetSQLValueString($_GET['yesdelete'], "int")); 

mysql_select_db($database_connectmysql, $connectmysql); 
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error()); 
header("location: editstock.php"); 
exit(); 
} 
?> 

редактировать 3
, если вы не можете найти, где Dreamweaver является определение функции, вы можете переопределить его -

<?php 
if (isset($_GET['delete'])) { 
echo 'Do you really want to delete ' . $_GET['piece'] . '? <a href="editstock.php?yesdelete=' . $_GET['id'] . '">Yes</a> | <a href="editstock.php">No</a>'; 
exit(); 
} 
if (isset($_GET['yesdelete'])) { 

// redefine if does not exist 
if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, 
$theDefinedValue = "", $theNotDefinedValue = "") 
{ 
if (PHP_VERSION < 6) { 
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 
} 

$theValue = function_exists("mysql_real_escape_string") ? 
mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 

switch ($theType) { 
case "text": 
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
break;  
case "long": 
case "int": 
$theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
break; 
case "double": 
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; 
break; 
case "date": 
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
break; 
case "defined": 
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
break; 
} 
return $theValue; 
} 
} 


$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1", 
        GetSQLValueString($_GET['yesdelete'], "int")); 

mysql_select_db($database_connectmysql, $connectmysql); 
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error()); 
header("location: editstock.php"); 
exit(); 
} 
?> 
+0

, так что если я понимаю это, что я делаю: измените все GET на POST, тогда где url я добавляю id? извините и благодарю ... – user2562865

+0

ли я был оставлен? стыд ... – user2562865

+0

Я обновил возможное решение. – Sean

Смежные вопросы