4

I am trying to pass a php variable into a java script window.location that returns a user to the current list view after deleting an item from the database. I can't seem to get the syntax correct.

Code:

function confirmation(a) {
var currString = "<? echo $currString ?>";
var answer = confirm("Are you sure you want to delete this item?")
if (answer){
    alert("The item has been deleted")
    window.location = "list.php?s='. $currString .'&=delete=true&id=" + a;
}
else{
    alert("The item has not been deleted")
}
pixelJockey
  • 321
  • 1
  • 5
  • 18

4 Answers4

10

Try this:

function confirmation(a) {
    var currString = "<?php echo $currString ?>";
    var answer = confirm("Are you sure you want to delete this item?");
    if (answer){
        alert("The item has been deleted")
        window.location = "list.php?s=" + currString + "&=delete=true&id=" + a;
    }
    else{
        alert("The item has not been deleted");
}
Parth Thakkar
  • 5,427
  • 3
  • 25
  • 34
  • Yaw, the concatenation operator is mixed up. As well as misplacing quotes. – Rey Gonzales Jun 20 '12 at 15:20
  • It seems the code fails to open the alert window. My delete button does nothing. – pixelJockey Jun 20 '12 at 15:30
  • Sorry it does work. It was missing/needed an additional "}". I failed to copy that the first time. – pixelJockey Jun 20 '12 at 15:41
  • One last question. Now the alert is working but it doesn't actually delete the entry from the database. This function was working...if(isset($_GET['delete'])) { $id = $_GET['id']; mysql_query("DELETE FROM resources WHERE id = $id LIMIT 1"); } – pixelJockey Jun 20 '12 at 15:46
  • sorry man, no idea! But the request is made right? Maybe some problem with server side. No idea about that right now. :) – Parth Thakkar Jun 20 '12 at 15:48
  • Got it: "DELETE FROM resources WHERE parent_category LIKE '%$currString%' AND id = $id LIMIT 1" – pixelJockey Jun 20 '12 at 16:00
  • you are missing a ; after the confirm() and first alert() – msEmmaMays Aug 29 '12 at 07:54
  • ok! corrected!......man! that's an observation! That's real observation! I answered this on 20th June, and you are the first one to find this mistake - 8th August! Awesome! – Parth Thakkar Aug 31 '12 at 15:51
1

you are pasing php variable to JS variable var currString = "";

and in window.location you are passing again php variable which is wrong,

so do it like this

window.location = "list.php?s=" + currString + "&=delete=true&id=" + a;
Khurram
  • 711
  • 5
  • 10
1

The syntax issue was solved by other answers, but you need to take care of an additional issue: URI encoding your variable when you use it in the URL:

window.location = "list.php?s="
                + encodeURIComponent(currString)
                + "&=delete=true&id=" + a;

or else you will run into problems of your variable contains characters like &.

Jasper de Vries
  • 19,370
  • 6
  • 64
  • 102
-3
echo "<script>alert('System info has been Save')</script>";
echo "<script>window.location='customer_detail.php?
customer_id=".$customer_id."'</script>";
Bart
  • 19,692
  • 7
  • 68
  • 77