2014-10-08 59 views
0

這是我驗證電話號碼的代碼;問題驗證電話號碼使用JavaScript在PHP註冊表格

if(!(preg_match([0-9]{10})|(\([0-9]{3}\)\s+[0-9]{3}\-[0-9]{4}, $_POST['phone']))) 
     die(msg(0,"You haven't provided a valid phone number")); 

輸入所有輸入詳細信息後,顯示如同加載。

任何人都可以說我的代碼中有什麼錯誤。

在此先感謝。

+0

你得到的錯誤是什麼? – Tushar 2014-10-08 06:41:47

+0

如果顯示一個加載圖標,我敢打賭你正在使用ajax提交表單。在瀏覽器中打開開發者工具,並查看您發佈的腳本正在返回。它應該產生一個錯誤 – 2014-10-08 06:45:42

+0

是的,我使用ajax ..好的。我如何知道開發人員工具。我正在使用firefox – user4119973 2014-10-08 06:47:19

回答

0

你的代碼更改爲:

if(!(preg_match("/([0-9]{10})|([0-9]{3}\\s+[0-9]{3}\\s+[0-9]{4})/", $_POST['phone']))) 
die(msg(0,"You haven't provided a valid phone number")); 

主要出現了兩個問題,你的正則表達式。

第一:你忘了把你的正則表達式放在引號內。第二:在開盤報價之後,以及在收盤價之前,您應該有這樣的建立pregmatch的例子:preg_match(「/ regex /」,$ string);

最後,正則表達式本身包含一些錯誤。

我推薦使用這個工具,如果你是新來的正則表達式:

http://regex101.com/

第二部分:

您有您的形式顯示加載問題的原因是因爲PHP-它發佈數據的腳本正在拋出一個錯誤。這個錯誤需要由ajax腳本獲取並返回給瀏覽器。簡單地使用die('a message');將會終止該腳本並將「消息」返回給查詢。您需要添加一個函數來處理任何錯誤響應。

在瀏覽器中使用的工具瀏覽器開發者工具,如螢火蟲或任何BUIL來看看你的Ajax查詢的輸出:

enter image description here

一個好方法,做一個Ajax調用會像:

var formData = $('#yourform').serialize(); 
$.ajax({ 
    url : "/link_to_script.php", 
    type : "POST", 
    data: formData, 
    dataType: "json", 
    success : function(d){ 
     if(d.success) { 
      // An array key called success is located with the value of true 
      alert('Successfully submitted form'); 
     } 
     if(d.error){ 
      // An array key called error is located with the value of true 
      alert(d.errormsg); 
      // Alerts the visitor with the content of the return array key "errormsg" 
     } 
    }, 
    error: function(){ 
     alert('Something went wrong'); 
     // This error function will be returned if the data returned by script is not json, or if the script cannot be reached/returns any kind of 404/500 error or such. 
    } 
}); 

這將處理從您的PHP腳本json輸出和interperate其數據。如果調用成功,它應該包含PHP腳本中的一些數據,例如成功消息或錯誤消息。這需要返回例如像這樣:

<?php 
    echo json_encode(array('success'=> true, 'message' => 'Uploaded file')); 
    // OR, incase error like the preg_match: 
    echo json_encode(array('error' => true, 'errormsg' => 'Phone not validated')); 

這將JSON編碼與要與你的AJAX腳本來處理數據的數組。

+0

它究竟是什麼意思。請使用開發人員工具,在提交表單時查看其中的CONSOL,並回復結果的內容。 – 2014-10-08 07:05:14

+0

請在您的開發人員工具中看到一個名爲「console」的按鈕。點擊那個。然後提交你的表格。在那裏您應該看到帖子的結果,就像我在我的回答中添加的圖片一樣 – 2014-10-08 07:14:05

+0

從您的表單頁面包含html和javascript請求 – 2014-10-08 07:37:48

0

您可以使用下面的代碼來驗證瀏覽器中的手機號碼。

<input name="mobilenum" pattern="[789][0-9]{9}" placeholder="Contact Number" required="" type="text"> 
+0

不支持所有瀏覽器。 Safari不認識它,也沒有早期版本的IE。 – 2014-10-08 06:52:04