Использовать переменную из метода post в файле php - PullRequest
0 голосов
/ 09 мая 2018

У меня сейчас 2 файла:

  • movie.php
  • deletemovie.php

movie.php будет иметь функцию javascript deletemovie(movietitle).

Функция срабатывает при нажатии на элемент.

<button class='btn btn-danger' onclick = deletemovie('{$movie['title']}')>X</button>

и deletemovie(movietitle):

function deletemovie(movietitle){
    console.log(movietitle);
    $.post("deletemovie.php", movietitle, "json");
  }

У меня вопрос, когда я обрабатываю данные поста в deletemovie.php,

$title = $_POST[movietitle];
foreach ($movies as $movie){
    if ($movie['title'] == movietitle) {
        unset($movie['title']);
    } 
}

я должен написать так? Я думаю $title = $_POST[movietitle]; как-то не так.

Есть предложения?


мой текущий код:

movie.php

function deletemovie(movietitle){
  console.log(movietitle);
  $.post("deletemovie.php", movietitle, "json");
}

deletemovie.php

foreach ($movies as $movie){
if ($movie['title'] == $_POST['movietitle']) {
    unset($movie['title']);
}
}

я думаю, что unset () не так? Но проблема все еще не решена.


movie.json:

{
    "abc": {
        "title": "abc",
        "director": "ddd",
        "rating": "5",
        "subtitle": "Yes",
        "genre": "I",
        "category": "I",
        "release": "2018-05-03",
        "end": "2018-05-09",
        "link": "das",
        "synopsis": "dasdas"
    },
    "afs": {
        "title": "afs",
        "director": "fasf",
        "rating": "5",
        "subtitle": "Yes",
        "genre": "I",
        "category": "I",
        "release": "2018-05-09",
        "end": "2018-05-10",
        "link": "fsa",
        "synopsis": "fs"
    }
}

Ответы [ 3 ]

0 голосов
/ 09 мая 2018

Вы должны написать движущую силу в апостосах

$title = $_POST['movietitle'];    
0 голосов
/ 09 мая 2018

Конвертируйте ваш json в массив php следующим образом:

$php_array = json_decode($json_value, true);

$php_array содержание:

[
   "abc" => [
        "title"=>"abc",
        "director"=>"ddd",
        "rating"=>"5",
        "subtitle"=>"Yes",
        "genre"=>"I",
        "category"=>"I",
        "release"=>"2018-05-03",
        "end"=>"2018-05-09",
        "link"=>"das",
        "synopsis"=>"dasdas"
    ],
    "afs" => [
        "title"=>"afs",
        "director"=>"fasf",
        "rating"=>"5",
        "subtitle"=>"Yes",
        "genre"=>"I",
        "category"=>"I",
        "release"=>"2018-05-09",
        "end"=>"2018-05-10",
        "link"=>"fsa",
        "synopsis"=>"fs"
    ]
]

Затем сбросьте фильм, который размещен:

foreach($php_array as $movie=>$details){
   if($details['title'] == $_POST['movietitle']){
      unset($php_array[$movie]);
   }
}

И преобразовать результат в json:

$json_output = json_encode($php_array);

Теперь содержимое $json_output - это список фильмов без $_POST['movietitle'] в формате json.

0 голосов
/ 09 мая 2018

Вы пробовали поместить "движение" в апострофы?

$title = $_POST['movietitle'];

В противном случае php, вероятно, интерпретирует movietitle как неизвестную константу и ничего не найдет.

Также эта строка выглядит неправильно:

if ($movie['title'] == movietitle)

Вы, вероятно, хотите:

if ($movie['title'] == $_POST['movietitle'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...