iT邦幫忙

0

不能正常redirect php twig

  • 分享至 

  • xImage

如果用我這種方法,怎樣才能做了POST的動作後會redirect到我想要的網站。

我試過用FORM POST DATA,和SAVE BUTTON 改做SUBMIT 是可以redirect的,如果要轉FORM POST的話,我要重新寫POST DATA的方法,所以"<el-button @click="save">Save" 用這個方法傳送的話有方法解決嗎?

twig code

<div id="div1">
    <div>
        <label>Title</label>
        <el-input type="textarea" :rows="3" placeholder="Please input" v-model="test_message"></el-input>
        <el-button @click="save">Save</el-button>
    </div>
</div>

<script>
    new Vue({
        el: "#div1",
        data() {
            return {
                activeName: 'first',
                input: '',
                test_message: "",

            }
        },

        async created() {
		// get data area
        },
        methods: {
            save() {

                var test_data_arr = { "test_message": this.test_message};
                this.$http.post(window.location.pathname + "/Post", test_data_arr);
            },
        }
    });

</script>

php code

   public function Post()
    {
		// post data area

        // 我看NETWORK是有POST到出去,但沒有RELOAD
        $this->redirect("test");
        // header("Location: test.php");
    }
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1

你在一個非同步請求,然後去運行後端轉向。
其實他有轉了。

但....
你的VUE是看著它在背景轉頁。
他還在等待回應。

因為你只做發送,沒做接收。
在VUE上發送完,就沒它的事了。

至於後端事情處理完了。然後轉頁了。就結束了。

以上,我用故事的方式說明,不清楚你是否能懂的我說的事。
總之,後端是後端轉頁,你非同步請求的情況下。並沒有做其處理的。
要清楚一下前端及後端的運做原理。

nick12345 iT邦新手 4 級 ‧ 2022-10-20 10:47:02 檢舉

所以TWIG發送去PHP,然後PHP POST完成後,要再返回TWIG做REDIRECT的意思嗎??

我在SAVE()加了這個

window.location.reload();

PHP 取消了 $this->redirect

這個做法對嗎

這倒也不是很正規的做法。
最好是在PHP回應值給前端接值後,判斷是否成功。

當然了,如果你要直接這樣做也行啦!但就是少了失敗時會不知道的情況。

nick12345 iT邦新手 4 級 ‧ 2022-10-20 14:56:31 檢舉

你說的做法我不太懂,有例子參考嗎?

我要發表回答

立即登入回答